从grid.arrange中删除边框

时间:2012-12-05 16:51:52

标签: r ggplot2 gridextra

我正在使用gridExtra包grid.arrange函数组合多个ggplot图。

我这样做:

p1<-ggplot(x, aes(Date, Value)) + geom_line()
p2<-ggplot(y, aes(Date, Score)) + geom_point()
grid.arrange(p1, p2,  main=textGrob("Head Line", gp=gpar(cex=1.5, fontface="bold", col="#990000")), ncol = 1, clip=TRUE)

此命令在p1和p2之间放置边框。我找不到有关删除grid.arrange中的边框的任何信息。是否可以删除边框?

2 个答案:

答案 0 :(得分:8)

gridExtra并未在图表之间添加任何其他边框。您所看到的只是已经围绕每个情节的边界。也就是说,p1底部有一个边框,p2顶部有一个边框。将两者放在一起,看起来两者之间可能有额外的空间。

要删除或调整每个地图的边框,请使用plot.margin功能中的theme元素。以下删除了p1的下边距和p2的上边距。

library(ggplot2)
library(gridExtra)

p1<-ggplot(data.frame(x = 1:10, y = 1:10), aes(x, y)) + geom_line() +
      theme(plot.margin = unit(c(1,1,0,1), "lines"))

p2<-ggplot(data.frame(x = 1:10, y = 1:10), aes(x, y)) + geom_point() +
   theme(plot.margin = unit(c(0,1,1,1), "lines"))

grid.arrange(p1, p2,  top=textGrob("Head Line", 
     gp=gpar(cex=1.5, fontface="bold", col="#990000")), ncol = 1, clip=TRUE)

enter image description here

修改(2015年7月16日):gridExtra&gt; = 2.0.0,main参数已重命名为top

答案 1 :(得分:0)

有点晚了,但是我遇到了同样的问题,我想我已经找到了解决方案。 plot.margin没有帮助,但是将panel.border和plot.background(参数的颜色和填充)调整为绘图的背景颜色就可以解决问题。