2

在R基本情节中,可以通过控制外边距oma(),我想知道是否有类似的功能ggplot2可以做到这一点。如下图所示,图形与页面边缘之间几乎没有空隙。非常感谢。在此处输入图像描述

请注意,我不是在询问每个子图之间的设置边距(这可以plot.margin=在 ggplot2 中完成)。我要问的是如何设置整个图形的外边距(类似于omaR 基本图)。谢谢。

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"))
4

1 回答 1

0

如果您想继续使用cowplot,您可以使用ggdraw()+ ,如介绍draw_plot()底部所示。我们的想法是将每个图的宽度和高度设置为小于其他情况(在本例中为 0.4),并相应地定位图(例如,在而不是 ( ):cowplot(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)

在此处输入图像描述

于 2016-08-24T02:32:51.280 回答