I would like to modify the colors of the facet background based on the group. I'm not sure if this is even possible. Specifically, I am using facet_grid
(not facet_wrap
) with multiple layers.
## Sample data
dat <- mtcars
## Add in some colors based on the data
dat$facet_fill_color <- c("red", "green", "blue", "yellow", "orange")[dat$gear]
## Create main plot
library(ggplot2)
P <- ggplot(dat, aes(x=cyl, y=wt)) + geom_point(aes(fill=hp)) + facet_grid(gear+carb ~ .)
## I can easily cahnge the background using:
P + theme(strip.background = element_rect(fill="red"))
However, I would like to change the color differently for different groups. Ideally, something like the following (which of course does not work)
P + theme(strip.background = element_rect(fill=dat$facet_fill_color))
P + theme(strip.background = element_rect(aes(fill=facet_fill_color)))
Can there be more than one color for facet backgrounds?
(related, but not an actual answer to above: ggplot2: facet_wrap strip color based on variable in data set)
See Question&Answers more detail:os