Цвет различных частей каждого гребня в ggridges (ggplot) в зависимости от установленных условий - PullRequest
0 голосов
/ 17 апреля 2019

Я пытаюсь создать риджплот, который показывает разные цветные области вдоль оси x в зависимости от отдельной переменной.

Немного похоже на функцию fill, но вместо окраски всего "гребня" он будет окрашивать только части, в зависимости от того, где выполняются определенные условия.

Вот тиббл, чтобы использовать какпример:

library(mosaicData) # for the dataset

> head(Weather)
# A tibble: 6 x 25
# Groups:   city, year [1]
  city  date        year month   day high_temp avg_temp low_temp high_dewpt avg_dewpt low_dewpt high_humidity avg_humidity low_humidity
  <chr> <date>     <dbl> <int> <dbl>     <dbl>    <dbl>    <dbl>      <dbl>     <dbl>     <dbl>         <dbl>        <dbl>        <dbl>
1 Auck~ 2016-01-01  2016     1     1        68       65       62         64        60        55           100           82           68
2 Auck~ 2016-01-02  2016     1     2        68       66       64         64        63        61           100           94           88
3 Auck~ 2016-01-03  2016     1     3        77       72       66         70        67        64           100           91           74
4 Auck~ 2016-01-04  2016     1     4        73       66       60         66        60        54           100           76           53
5 Auck~ 2016-01-05  2016     1     5        69       62       55         55        52        48            82           69           56
6 Auck~ 2016-01-06  2016     1     6        69       63       57         54        51        46            88           65           46
# ... with 11 more variables: high_hg <dbl>, avg_hg <dbl>, low_hg <dbl>, high_vis <dbl>, avg_vis <dbl>, low_vis <dbl>, high_wind <dbl>,
#   avg_wind <dbl>, low_wind <dbl>, precip <chr>, events <chr>

А вот код для графика риджа:

library(ggplot2)
library(ggridges)
ggplot(Weather, aes(x = date, y = city, height = avg_temp)) +
  geom_density_ridges(stat = "identity", fill = 'black', scale = 1, alpha = .4) +
  theme_ridges(center_axis_labels = TRUE)

, который создает такой график:

То, что я хотел бы сделать, используя этот набор данных в качестве примера, это:

  • цветовые периоды (вдоль оси x) синего цвета, если height = avg_temp опускается ниже, скажем, 65
  • цветовые периоды (вдоль оси x) красного цвета, если high_temp (переменная, не используемая на графике гряды) превышает 70
...