R ggplot,更改构面标签文本和背景颜色

jf3*_*328 30 r ggplot2

如何将灰色小平面标签(A和B)更改为带有白色文本的红色背景?

A = data.table(x = 1:4, y = 1:4, z = c('A','A','B','B'))
ggplot(A) + geom_point(aes(x = x, y = y)) + facet_wrap(~z) + theme_bw()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Hab*_*yme 41

你可以做:

ggplot(A) +
  geom_point(aes(x = x, y = y)) +
  facet_wrap(~z) +
  theme_bw()+
  theme(strip.background =element_rect(fill="red"))+
  theme(strip.text = element_text(colour = 'white'))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 是否可以更改一个标签的颜色?假设我有5列,我想突出显示中心列. (3认同)

fil*_*s21 14

对于任何人都希望改变个体小标签,有一个解决方案在这里

g <- ggplot_gtable(ggplot_build(p))
stripr <- which(grepl('strip-r', g$layout$name))
fills <- c("red","green","blue","yellow")
k <- 1
for (i in stripr) {
  j <- which(grepl('rect', g$grobs[[i]]$grobs[[1]]$childrenOrder))
  g$grobs[[i]]$grobs[[1]]$children[[j]]$gp$fill <- fills[k]
  k <- k+1
}
grid::grid.draw(g)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • 有没有办法在 ggplot 中本地执行此操作? (2认同)