将geom_rect添加到ggplot2中的绘图背景(不是面板)

时间:2017-10-07 03:31:53

标签: r ggplot2

我附上了538剧情的截图 - https://scontent-lax3-2.xx.fbcdn.net/v/t31.0-8/22218477_1588451034532053_5652546964446428775_o.png?oh=aa7436a960f2982deed7a90c997f31e4&oe=5A45A9E7 - 我试图以类似的方式格式化我的ggplot。我目前正在努力的部分是底部的深灰色阴影。我在这里有一个演示图:

ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + 
  geom_point() + 
  theme(plot.background = element_rect(fill = 'gray95'),
        panel.background = element_rect(fill = 'red')) + 
  labs(caption = 'mycaption')

panel.background将整个面板的颜色设置为红色,并将plot.background的颜色设置为面板灰色的外部。我熟悉geom_rect(),但是这些只能放在我读过的面板中,参数为xmin / xmax / ymin / ymax ...无论如何我都要添加geom_rect()在整个图形的底部,而不仅仅是面板底部的x和y坐标之间?

让我知道这是否有意义,否则我可以解释更多。

谢谢!

2 个答案:

答案 0 :(得分:1)

我不知道在ggplot中直接实现这一点的方法,但你肯定可以使用grid包的更一般的功能来实现。如果您之前没有使用它,我发现this tutorial有助于您开始使用它。您可以随意布置一个页面,其中放置了ggplot图表。

或者,您可以查看cowplot包。它还允许您更简单地布置页面并更简单地完成许多网格功能。您应该能够从文档中找出如何做您想做的事情。

答案 1 :(得分:1)

这个网站上已有几个答案;这是一种方法:

library(gridExtra)
fthbar <- grobTree(rectGrob(gp=gpar(fill="grey50",col=NA)),
                   textGrob("LEFT", x=0, hjust=0, gp=gpar(col="white")), 
                      textGrob("RIGHT", x=1, hjust=1, gp=gpar(col="white")), cl="ann")
heightDetails.ann <- function(x) unit(1,"line")
grid.arrange(qplot(rnorm(10),rnorm(10)), bottom = fthbar)

enter image description here