如果你只用plot函数的话,那么用`par函数就能实现了,不过本文讲的是ggplot2的一页多图
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
还是以上面那四幅图为例
install.packages("patchwork")
library(patchwork)
主需要输入 a+b+c+d
怎么样,是不是非常简单呢
那么如何让第一张图在第一行,剩下的在第二行呢?
只需要输入
a/(b+c+d)
install.packages("ggpubr")
library(ggpubr)
ggarrange(a,b,c,d)