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就是两列,结果如下:

当然你也可以这么添加参数
cowplot::plot_grid(a,b,c,d,nrow=2,labels = c('第一张图', 'second picture', 'C', '最后一张'))

修改每张图所占的比例
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表示列,即高度

留出空白区域
byrow=T的意思是图片顺序按行
如下图,第三幅和第五幅图是空白
plot_grid(a,b,NULL,c,NULL,d,nrow=2,byrow=T)

寻找更多的参数
??cowplot
patchwork包(最简单)
还是以上面那四幅图为例
install.packages("patchwork")library(patchwork)
主需要输入 a+b+c+d

怎么样,是不是非常简单呢
那么如何让第一张图在第一行,剩下的在第二行呢?
只需要输入
a/(b+c+d)

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

同样他也有很多参数

更多内容请点击:
ggplot2一页多图(组合图)
ggplot2画组合图
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
