37

我有以下类型的绘图,并希望将单个构面框上方的每个条形文本保留为各种“标题”,但没有默认的灰色背景和strip.background. 我将它着色为接近我想要的白色,但希望底部边缘strip.background或顶部边缘为panel.border黑色。

在此处输入图像描述

library(ggplot2)

ggplot(mtcars, aes(mpg, hp)) + geom_point() +
    facet_wrap(~carb, ncol = 3) + theme_bw() +
    theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        strip.background = element_rect(colour="white", fill="white"),
        panel.border = element_rect(colour = "black"))
4

3 回答 3

53

如果您设置element_blank()strip.background并保持element_rect(colour="black", fill = NA)为,panel.border则顶部边缘panel.border将为黑色。正如@adrien 所指出的, for panel.backgroundfill 应该设置为 NA 以避免覆盖点(已经设置为默认值theme_bw())。

ggplot(mtcars, aes(mpg, hp)) + geom_point() +
  facet_wrap(~carb, ncol = 3) + theme_bw() +
  theme(panel.grid.major = element_blank(),
        panel.grid.minor = element_blank(),
        strip.background = element_blank(),
        panel.border = element_rect(colour = "black", fill = NA))

在此处输入图像描述

于 2013-01-06T19:20:24.680 回答
12

设置panel.border可能会覆盖您的图表,除非您还fill=NA添加panel.border

theme(panel.border = element_rect(fill = NA, colour = "black"))

也可以使用:

theme(panel.background = element_rect(fill = NA, color = "black")

来源(“面板属性”部分)

于 2015-06-15T14:24:21.283 回答
3

你可以试试:

 strip.background = element_rect(colour=NA, fill=NA),
 panel.border = element_rect(fill = NA, color = "black"))
于 2015-11-24T10:05:31.210 回答