图形合并策略
前三种策略
library(cowplot) library(gridExtra) library(ggpubr) data("mtcars") data("ToothGrowth") rm(list = ls()) # 前三种策略 mtcars$name <- rownames(mtcars) mtcars$cyl <- as.factor(mtcars$cyl) mtcars mtcars$name <- factor(mtcars$name,levels = mtcars[order(mtcars$cyl),'name'])#此处设置可使同组排列一起,调整因子的顺序 ToothGrowth$dose <- as.factor(ToothGrowth$dose) bxp <- ggplot(ToothGrowth,aes(x=dose,y=len,color=dose))+geom_boxplot() dp <- ggplot(ToothGrowth,aes(x=dose,y=len,fill=dose))+geom_dotplot(binaxis='y',stackdir = 'center', stackratio = 1.5,dotsize = 1.2) bp <- ggplot(mtcars,aes(x=name,y=mpg,fill=cyl))+geom_bar(stat = 'identity')+theme(axis.text.x=element_text(angle = 75,hjust=1,size=8)) # sp <- ggplot(mtcars,aes(x=wt,y=mpg,color=cyl,shapecyl))+geom_point()+geom_smooth(method = ls,aes(fill=cyl)) plot_grid(bxp,dp,bp,sp,labels = c('A','B','C','D'),ncol = 2,nrow = 2) #cowplot ggarrange(bxp,dp,bp,sp,labels = c('A','B','C','D'),ncol = 2,nrow = 2) #ggpubr grid.arrange(bxp,dp,bp,sp,ncol = 2,nrow = 2) #gridExtra
第四种策略用新包patchwork
# install.packages('patchwork') library('patchwork') bxp+dp+bp+sp + plot_annotation(tag_levels = 'A')+ #图例都放右边 plot_layout(guides = 'collect')& theme_minimal() #&符号可以修改所有子图主题
个人比较看好patchwork,对于排版有个更大的自由,参数有很多,想了解的话直接看大佬的原文档。