在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"))
答案 0 :(得分:0)
如果您希望继续使用cowplot
,可以使用ggdraw()
+ draw_plot()
,如cowplot
introduction底部所示。我们的想法是将每个绘图的宽度和高度设置为小于其他情况(在这种情况下为0.4),并相应地定位绘图(例如,在(0.1, 0.1)
而不是(0, 0
) :
ggdraw() +
draw_plot(plot1, .1, .5, .4, .4) +
draw_plot(plot2, .5, .5, .4, .4) +
draw_plot(plot3, .1, .1, .4, .4) +
draw_plot(plot4, .5, .1, .4, .4) +
draw_plot_label(LETTERS[1:4],
x = c(.1, .5, .1, .5),
y = c(.9, .9, .5, .5), size = 15)