ggplot2实现一页多图的三种方法

一页多图的三种方法

  • cowplot包
    • 简单示例
    • 修改每张图所占的比例
    • 留出空白区域
  • patchwork包(最简单)
  • gupubr包

如果你只用plot函数的话,那么用`par函数就能实现了,不过本文讲的是ggplot2的一页多图

cowplot包

install.packages("cowplot")
library(cowplot)

这是随便一组数据,可以看到我现在有a,b,c,d四张图,当然图的名字可以自己命名,关于这些图,可以看我的下面这篇文章
ggthems包

x<-c(1:5)
y<-x
xy<-data.frame(x,y)
library(tidyverse)
library(ggthemes)
a <- ggplot(xy,aes(x,y))+geom_point()+theme_few()
b <- ggplot(xy,aes(x,y))+geom_point()+ theme_calc()
c<-ggplot(xy,aes(x,y))+geom_point()
d<-ggplot(xy,aes(x,y))+geom_point()+theme_excel()+
  geom_abline(slope = 1,intercept = 0)

简单示例

只要输入:
plot_grid前面的内容可以不要

cowplot::plot_grid(a,b,c,d,nrow=2)

a,b,c,d是我图的名字,nrow=2就是两列,结果如下:

ggplot2实现一页多图的三种方法_第1张图片
当然你也可以这么添加参数

cowplot::plot_grid(a,b,c,d,nrow=2,
    labels = c('第一张图', 'second picture', 'C', '最后一张'))

ggplot2实现一页多图的三种方法_第2张图片

修改每张图所占的比例

cowplot::plot_grid(a,b,c,d,nrow=2,labels = "auto"
                           ,label_size = 20,rel_widths = c(1,2),rel_heights = c(2,1))

这里的标签选择了自动

rel_widths = c(1,2),rel_heights = c(2,1)
width表示长,宽度
heights表示列,即高度

ggplot2实现一页多图的三种方法_第3张图片

留出空白区域

byrow=T的意思是图片顺序按行
如下图,第三幅和第五幅图是空白

plot_grid(a,b,NULL,c,NULL,d,nrow=2,byrow=T)

ggplot2实现一页多图的三种方法_第4张图片
寻找更多的参数

??cowplot

patchwork包(最简单)

还是以上面那四幅图为例

install.packages("patchwork")
  library(patchwork)

主需要输入 a+b+c+d
ggplot2实现一页多图的三种方法_第5张图片
怎么样,是不是非常简单呢
那么如何让第一张图在第一行,剩下的在第二行呢?
只需要输入

a/(b+c+d)

ggplot2实现一页多图的三种方法_第6张图片

gupubr包

install.packages("ggpubr")
library(ggpubr)
ggarrange(a,b,c,d)

ggplot2实现一页多图的三种方法_第7张图片
同样他也有很多参数
ggplot2实现一页多图的三种方法_第8张图片
更多内容请点击:
ggplot2一页多图(组合图)
ggplot2画组合图

你可能感兴趣的:(ggplot2,r语言,开发语言)