Based on the code and data below, is it possible to have common legend labels without having to remove xlab
and ylab
from the ggplot
codes using patchwork
?
The reason why I ask this is because I have lots of ggplots
and so I don't find it ideal to remove xlab
and ylab
from each of the ggplots
and then use the method in the code. I know I can use ggarrange
but ggpubr
is much slower than patchwork
.
Sample data and code:
library(tidyverse)
library(patchwork)
library(gridextra)
gg1 = ggplot(mtcars) +
aes(x = cyl, y = disp) +
geom_point() +
xlab("Disp") +
ylab("Hp // Cyl") +
theme(axis.title = element_blank())
gg2 = gg1 %+% aes(x = hp) +
xlab("Disp") +
ylab("Hp // Cyl")
# This method still keeps the individual axis labels.
p = gg1 + gg2
gt = patchwork::patchworkGrob(p)
gridExtra::grid.arrange(gt, left = "Disp", bottom = "Hp // Cyl")