一页中的ggplot plot多图

时间:2018-11-20 12:47:46

标签: ggplot2

如何在一页中绘制多个子图?每个带有x,y轴的子图(不共享任何轴),但是共享图例。 这是我的示例数据:

df <- data.frame(class=paste0('a',1:20),
             x1=runif(20),
             x2=runif(20),
             y1=runif(20),
             y2=runif(20))

子图代码为:

p1 <- ggplot(df,aes(x=x1,y=y1))+
  geom_point(aes(color=class),size=2,show.legend=TRUE)+
  stat_smooth(method='lm',color='black')+
  theme_bw()
p2 <- ggplot(df,aes(x=x2,y=y2))+
  geom_point(aes(color=class),size=2,show.legend=TRUE)+
  stat_smooth(method='lm',color='black')+
  theme_bw()

我尝试绘制两个图形x1-y1和x2-y2,它们共享点类。 我预期的情节如下所示:

enter image description here

1 个答案:

答案 0 :(得分:1)

只需在末尾编写以下代码:

grid.arrange(p1,p2,nrow=2)

唯一的问题是您必须满足于两个图例。您可以以某种方式将show.legend=FALSE设置为p1,然后调整其绘图边距,使其看起来像p2

两个图例的结果:Two_legend 图例仅针对p2显示的结果:One_legend