I've tried googling this but can't find anything, so apologies if there's an obvious solution, but so far it's eluded me.

I ultimately want to create a `geom_density_ridges`

plot using the `ggridges`

package, and fill in the parts of the density plots where values are, for example, `>= -2 & =< 0`

with some colour, and the part of the plot where `>=0.2 & <= 1`

with another.

Below is the closest I've got whereby I create another `variable`

which is conditional on the values of `x`

. This sort of works for a histogram but obviously fails for `geom_density()`

since ggplot treats each `fill`

as a group. I basically just need to 'overlay' my arbitrary fills. Does that make sense?

```
library(tidyverse)
data <-
tibble(
x = rnorm(1000, mean = 0, sd = 1)
) %>%
mutate(
variable = case_when(
(x >= -2 & x <= 0) ~ "On",
(x >= 0.2 & x <= 1) ~ "Off",
TRUE ~ NA_character_
)
)
ggplot(data, aes(x, fill = variable)) +
geom_histogram(binwidth = 0.1, alpha = 0.7)
```

```
ggplot(data, aes(x, fill = variable)) +
geom_density()
```

^{Created on 2018-11-12 by the reprex package (v0.2.1)}