r - 使用拼凑法排列多个地 block 时,如何将图例合并为地 block 大小图?

标签 r ggplot2 patchwork

虚拟代码:

library(ggplot2)
library(patchwork)

plot1 <- mpg %>% ggplot()
plot2 <- mpg %>% ggplot()
plot3 <- mpg %>% ggplot(aes(cyl, displ)) +
  geom_point(aes(colour = manufacturer)) + 
  guides(colour=guide_legend(ncol=4))

(plot1 + plot2) / plot3
我不是在寻找组合的传奇,而是在寻找类似的东西:
enter image description here
传说被“考虑”为情节的一部分。我试过用 theme() 添加边距和 plot_spacer()但这不完全是我想要的。这就是我得到的:
enter image description here

最佳答案

对于您的示例代码,一种选择是使用 guide_area()像这样:

library(ggplot2)
library(patchwork)
library(magrittr)

plot1 <- mpg %>% ggplot()
plot2 <- mpg %>% ggplot()
plot3 <- mpg %>% ggplot(aes(cyl, displ)) +
  geom_point(aes(colour = manufacturer)) + 
  guides(colour = guide_legend(ncol=3))

plot1 + plot2 + plot3 + guide_area() + 
  plot_layout(guides = 'collect')

另一种选择是通过 cowplot::get_legend 提取指南并将其添加到拼凑而成,如下所示:
(plot1 + plot2) / (plot3 + guides(color = "none") + cowplot::get_legend(plot3))

创建于 2021-09-22 由 reprex package (v2.0.1)

关于r - 使用拼凑法排列多个地 block 时,如何将图例合并为地 block 大小图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69284225/

相关文章:

r - 使用交互和指南修改 ggplot2 中的图例

html - 在 ggplot 标题中使用 HTML 元素

r - R 中带有跨图图例的多面板图以及 R 中的 ggtext 和 gridtext

r - 使用 ggtext 的 ggplots 拼凑标题中的颜色?

r - group_by grepl 表达式 dplyr R

reshape 形状()和修改形状()

r - dplyr 和 ggplot 管道未按预期工作

r - 使用 R 中的 ggplot 和 patchwork 更改轴标签和比例

根据组中第一个值的条件替换 df 中的后续值

r - 如何对 block 中的变量进行排序