agi*_*ila 6 r ggplot2 patchwork
我想结合两个或更多的情节来合并他们的传说。
例如,我可以创建一些数据和两个场景,如下所示。
# 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
Run Code Online (Sandbox Code Playgroud)

data2 <- data.frame(x = x, y = y, z = runif(50, -1, 1))
p2 <- ggplot(data2) + geom_point(aes(x, y, col = z))
p2
Run Code Online (Sandbox Code Playgroud)

以下代码是我迄今为止尝试过的代码,但这不是预期的结果。我想将两个图与单个图例合并,即创建一个独特且常见的图例“z”,使两个图的点根据这个图例进行着色。这可能吗?
p1 + p2 + plot_layout(guides = "collect")
Run Code Online (Sandbox Code Playgroud)

由reprex 包(v0.3.0)于 2020 年 4 月 7 日创建
teu*_*and 11
我认为只有当两个图例具有完全相同的属性时才能组合在一起,即共享限制、标签、中断等。您可以通过共享一个通用比例来提供一个通用图例,拼凑而成的一种方法是使用&运算符,哪种意思是“将此应用于所有以前的图”:
p1 + p2 + plot_layout(guides = "collect") &
scale_colour_continuous(limits = range(c(data1$z, data2$z)))
Run Code Online (Sandbox Code Playgroud)
唯一的缺点是您可能必须手动指定限制,因为比例尺p1不知道p2.