Centered X-axis label for muliplot using cowplot package

爱⌒轻易说出口 提交于 2020-07-04 13:26:06

问题


I have a multiplot figure consisting of 4 plots in a 2x2 configuration. I arranged the plots using the "cowplot" package and the plot_grid function using the code below

plot_grid(p1, p2, p3, p4, align='vh', vjust=1, scale = 1)

where p1-p4 are my 4 plots. The resulting figure has an x-axis label associated with each column in the multiplot:

Does anyone know how I can code a single x-axis label centered at the bottom of the multiplot, either with cowplot or another way?


回答1:


Another option is to use textGrob to add annotations for common x and y labels.

In this example, if you wish to remove the individual axis labels, just include theme(axis.title = element_blank()) in the plot calls. (or, for just y-axis, use theme(axis.title.y=element_blank())).

library(ggplot2)
library(cowplot)
library(grid)
library(gridExtra)

ToothGrowth$dose <- as.factor(ToothGrowth$dose)

#make 4 plots

p1<-ggplot(ToothGrowth, aes(x=dose, y=len)) + 
  geom_boxplot()


p2<-ggplot(ToothGrowth, aes(x=dose, y=supp)) + 
  geom_boxplot()

p3<-ggplot(ToothGrowth, aes(x=supp, y=len)) + 
  geom_boxplot()

p4<-ggplot(ToothGrowth, aes(x=supp, y=dose)) + 
  geom_boxplot()

#combine using cowplot

plot<-plot_grid(p1, p2, p3, p4, align='vh', vjust=1, scale = 1)

#create common x and y labels

y.grob <- textGrob("Common Y", 
                   gp=gpar(fontface="bold", col="blue", fontsize=15), rot=90)

x.grob <- textGrob("Common X", 
                   gp=gpar(fontface="bold", col="blue", fontsize=15))

#add to plot

grid.arrange(arrangeGrob(plot, left = y.grob, bottom = x.grob))




回答2:


This is a little late but I had the same problem so hopefully the next person to view this question will find this useful.

library(cowplot)
plot<-plot_grid(p1, p2, p3, p4, align='vh', vjust=1, scale = 1)
ggdraw(add_sub(plot, "Label", vpadding=grid::unit(0,"lines"),y=6, x=0.5, vjust=4.5))


来源:https://stackoverflow.com/questions/33114380/centered-x-axis-label-for-muliplot-using-cowplot-package

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!