我想在 ggplot 中制作 4 个并排的散点图。在每个图中,我通过连续变量为点着色。我希望在四个图中将相同的值映射到相同的颜色,以便我可以比较这些图并使用一个共同的图例。有什么建议么?我尝试了 scale_colour_gradientn() 并玩弄了“价值观”的争论,但到目前为止无济于事。
以下是四个地块:
library(tidyverse)
library(gridExtra)
set.seed(111)
n <- 100
X1 <- rnorm(n, mean=0,sd=2)
X2 <- rnorm(n, mean=0,sd=2)
y <- rnorm(100, mean=10*(X1 < -1) - 10*(X1 > -1) +
15*(X1 > -1 & X2 > 2), sd=1)
y0 <- rnorm(100, mean=10*(X1 < -1) - 10*(X1 > -1), sd=1)
y40 <- rnorm(100, mean=10*(X1 < -1) - 10*(X1 > -1) +
40*(X1 > -1 & X2 > 2), sd=1)
y20 <- rnorm(100, mean=10*(X1 < -1) - 20*(X1 > -1) +
15*(X1 > -1 & X2 > 2), sd=1)
p1 <- ggplot(data=NULL) + geom_point(aes(x=X1, y=X2, col=y)) +
scale_colour_gradientn(colours = hcl.colors(8, "BluGrn"))
p2 <- ggplot(data=NULL) + geom_point(aes(x=X1, y=X2, col=y0)) +
scale_colour_gradientn(colours = hcl.colors(8, "BluGrn"))
p3 <- ggplot(data=NULL) + geom_point(aes(x=X1, y=X2, col=y40)) +
scale_colour_gradientn(colours = hcl.colors(8, "BluGrn"))
p4 <- ggplot(data=NULL) + geom_point(aes(x=X1, y=X2, col=y20)) +
scale_colour_gradientn(colours = hcl.colors(8, "BluGrn"))
grid.arrange(p1,p2,p3,p4, nrow=2)
任何关于如何创建可以在 y、y0、y40 和 y20 之间共享的值->颜色连续映射的建议都将非常感激。谢谢!