在ggplot主题中设置panel.border会将面板背景变为白色(擦掉绘图本身)

时间:2014-03-03 15:47:27

标签: r ggplot2 themes panel

我想让我的情节边框成为黑色以外的某种颜色。我注意到如果我使用:

将默认主题设置为theme_bw()
theme_set(theme_bw())

我可以使用

将边框设置为我想要的颜色
theme(panel.border = element_rect(color="darkred", size=0.5, linetype="solid").

这似乎工作正常。每个面板的边框,无论是刻面图还是单个图,都采用“暗色”颜色,其余部分与我更改panel.border之前的相同。

但是,如果我使用不同的默认主题,比如theme_gray()或theme_classic(),则边框会发生变化,但每个方面的内容都会被删除(完全白色)。

知道造成这种行为差异的原因或我能做些什么来修复它?我想使用theme_gray()并在每个方面的边框周围放一条细彩色线条。

1 个答案:

答案 0 :(得分:7)

theme()的帮助页面说panel.borded= This should be used with fill=NA,因为它涵盖了面板。

对于theme_bw()已经panel.border = element_rect(fill = NA,colour = "grey50"),因此当您使用语句时,只有颜色更改并且填充仍为NA

对于theme_grey()theme_bw(),有panel.border = element_blank()因此,当您添加语句时,color=fill=会被更改,因为之前此元素为空且默认rect的值为fill="white"(至少theme_grey())。

使用

+ theme(panel.border = element_rect(fill=NA,color="darkred", size=0.5, 
                                    linetype="solid"))