1

我想使用该patchwork包收集 9 个 ggplots 的图例。图例具有不同的基础值(见图 1),但都对应于相同的值标签(见图 2)。有没有可能收集到这些传说?使用plot_layout(guides = "collect")不起作用。

图。1

在此处输入图像描述

图 2 在此处输入图像描述

我正在使用的代码:

library(patchwork)

(p1 | p2 | p3 | p4) / (p5 | p6 | p7 | p8 | p9) &
   scale_color_brewer(labels = c("-2 SD", "-1 SD", "Mean", "+1 SD", "+2 SD"),
                      palette = "RdYlBu") &
   scale_fill_brewer(labels = c("-2 SD", "-1 SD", "Mean", "+1 SD", "+2 SD"),
                     palette = "RdYlBu") &
   plot_layout(guides = "collect")

最小的工作示例

library(ggplot2)
library(patchwork)
plot1 <- ggplot(data = mtcars %>% mutate(cyl = as.factor(cyl)),
                mapping = aes(x = wt, y = mpg, group = cyl, color = cyl)) +
   geom_smooth(method = "lm")


plot2 <- ggplot(data = mtcars %>% mutate(cyl = as.character(cyl)),
                mapping = aes(x = wt, y = mpg, group = cyl, color = cyl)) +
   geom_smooth(method = "lm")

plot1 + plot2 &
   plot_layout(guides = "collect")

在此处输入图像描述

MWE 的预期结果 在此处输入图像描述

4

1 回答 1

0

如果你还没有解决这个问题,你需要在你的代码中使用+而不是:&

从你的mwe:

# note the +
plot1 + plot2 + plot_layout(guides = "collect")

在此处输入图像描述

于 2021-08-31T08:43:09.383 回答