我想将条带背景的颜色更改为预定义的顺序。
此代码生成绘图,并将条带背景更改为红色:
p <- ggplot(mpg, aes(displ, cty)) + geom_point() + facet_grid(. ~ cyl) +
theme(strip.background = element_rect(fill="red"))
但是,我想做类似下面的事情,理想情况下会为每个条带指定不同的颜色
p <- ggplot(mpg, aes(displ, cty)) + geom_point() + facet_grid(. ~ cyl) +
theme(strip.background = element_rect(fill=c("red","green","blue","yellow")))
这让它们全都变红了......
几年前在类似问题中就曾问过这个问题,答案是操纵grob。我希望从那以后的几年里有一个更简单的解决方案?
现在,一个易于使用的选项是使用
ggh4x::facet_grid2
,它通过 strip=
参数允许单独设置条带文本和背景的样式:
library(ggplot2)
library(ggh4x)
ggplot(mpg, aes(displ, cty)) +
geom_point() +
facet_grid2(. ~ cyl,
strip = strip_themed(
background_x = elem_list_rect(
fill = c("red", "green", "blue", "yellow")
)
)
)