【发布时间】:2016-08-24 10:32:51
【问题描述】:
在R基本情节中,可以通过oma()控制外边距,不知道ggplot2中是否有类似的功能可以做到这一点。如下图所示,图形与页面边缘之间几乎没有空隙。非常感谢。
请注意,我不是在询问每个子图之间的设置边距(这可以通过 ggplot2 中的plot.margin= 完成)。我要问的是如何设置整个图形的外边距(类似于 R 基本图中的oma)。谢谢。
require(cowplot)
require(ggplot2)
x=1:50
y=x^2
z=rep(c("p","sp","n","sn","nt"),each=10)
mydata= data.frame(x,y,z)
plot1=ggplot(mydata,aes(x=x,y=y,group=z))+geom_point(aes(shape=z,color=z),size=1)+scale_shape_manual(values=c(19,1,19,17,17))+scale_color_manual(values=c("blue","black","red","blue","red"))
plot2=ggplot(mydata,aes(x=x,y=y,group=z))+geom_point(aes(shape=z,color=z),size=3)+scale_shape_manual(values=c(19,1,19,17,17))+scale_color_manual(values=c("blue","black","red","blue","red"))
plot3=ggplot(mydata,aes(x=x,y=y,group=z))+geom_point(aes(shape=z,color=z),size=5)+scale_shape_manual(values=c(19,1,19,17,17))+scale_color_manual(values=c("blue","black","red","blue","red"))
plot4=ggplot(mydata,aes(x=x,y=y,group=z))+geom_point(aes(shape=z,color=z),size=7)+scale_shape_manual(values=c(19,1,19,17,17))+scale_color_manual(values=c("blue","black","red","blue","red"))
plot_grid(plot1, plot2, plot1,plot1, align='h', labels=c('a', 'b',"c","d"))
【问题讨论】:
-
嗯。
plot_grid返回一个 ggplot 对象。去搞清楚。只需添加+ theme(plot.margin=margin(30,30,30,30))(或您需要的任何空间) -
非常感谢。但我要问的是如何设置整个图形的外边距(类似于 R 基本图中的
oma),而不是子图。 -
这有点小技巧,但
gridExtra::grid.arrange(plot1, plot2, plot1,plot1,left="",top="",bottom="",right="")会给你一些外边距...