facet_grid 条带背景的不同颜色

问题描述 投票:0回答:1

我想将条带背景的颜色更改为预定义的顺序。

此代码生成绘图,并将条带背景更改为红色:

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。我希望从那以后的几年里有一个更简单的解决方案?

r ggplot2 facet-grid
1个回答
0
投票

现在,一个易于使用的选项是使用

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")
      )
    )
  )

© www.soinside.com 2019 - 2024. All rights reserved.