使用patchwork在ggplot2中合并图例
2025-09-18 22:51:46
我希望将两个或多个图表合并,同时合并它们的图例。
例如,我可以创建以下数据和两种情景。
# packages
library(ggplot2)
library(patchwork)
# first plot
set.seed(07042020)
x <- runif(50)
y <- runif(50)
data1 <- data.frame(x = x, y = y, z = runif(50, 0, 2))
p1 <- ggplot(data1) + geom_point(aes(x, y, col = z))
p1
data2 <- data.frame(x = x, y = y, z = runif(50, -1, 1))
p2 <- ggplot(data2) + geom_point(aes(x, y, col = z))
p2
以下是我尝试过的代码,但并不是预期结果。 我想将这两个图合并为一个图例,即创建一个唯一和共同的图例 "z",使得这两个图的点根据该共同的图例着色。 这是可能的吗?
p1 + p2 + plot_layout(guides = "collect")
这是由reprex包(v0.3.0)于2020年04月07日创建的。