2012-12-05 41 views
3

我正在使用gridExtra封裝grid.arrange函數組合多個ggplot圖形。從grid.arrange刪除邊框

我這樣做:

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中刪除邊框的任何信息。是否可以刪除邊界?

回答

8

gridExtra不在繪圖之間增加任何邊界。你所看到的只是已經圍繞每個情節的邊界。也就是說,在p1的底部有一個邊框,在p2的頂部有一個邊框。把兩者放在一起,看起來兩者之間可能有更多空間。

要刪除或調整每個圖的邊界,請使用theme函數中的plot.margin元素。以下消除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

編輯(16/07/2015):與gridExtra> = 2.0.0,所述main參數已被重命名top