我使用patchwork在R中创建一个多图,它们共享一个图例。因此,我使用
ggpubr :: get_legend()将图例包含在右上角面板中(注意:我不能使用 patchwork :: plot_layout(),因为图例具有不同的基础值)。
基础绘图
library(ggplot2)
library(patchwork)
library(ggpubr)
p <- ggplot(data = mtcars %>% mutate(cyl = as.factor(cyl)),
mapping = aes(x = wt, y = mpg, group = cyl, color = cyl)) +
geom_smooth(method = "lm")
当顶部和底部行拥有6个相同的地块时,这些地块将对齐:
(p | p | p | p | p | p) /
(p | p | p | p | p | p) &
theme(legend.position = "none")
当顶部第5个图例时,它们不对齐:
leg <- as_ggplot(get_legend(p))
(p | p | p | p | p | leg) /
(p | p | p | p | p | p) &
theme(legend.position = "none")