R 如何用ggplot合并两种不同比例的颜色渐变

R 如何用ggplot合并两种不同比例的颜色渐变,r,ggplot2,R,Ggplot2,通过使用R,是否可以将2个ggplot放在一起(即,在同一个plot上),但颜色渐变条不同?我的代码,例如 library(ggplot2) ggplot(df1, aes(duration, slopes, col = color)) + geom_point(size = 3) + scale_color_gradient(low = "black", high = "red") ggplot(df2, aes(duration, slopes, col = color)) + geo

通过使用R,是否可以将2个ggplot放在一起(即,在同一个plot上),但颜色渐变条不同?我的代码,例如

library(ggplot2)
ggplot(df1, aes(duration, slopes, col = color)) +
 geom_point(size = 3) +
 scale_color_gradient(low = "black", high = "red")
ggplot(df2, aes(duration, slopes, col = color)) +
 geom_point(size = 3) +
 scale_color_gradient(low = "blue", high = "green")
生成以下两张图片


相反,我希望能够将它们集成到一个绘图中,一个红色和黑色条带,另一个蓝色和绿色条带。

是的,如果您使用
ggnewscale
软件包,您可以:

a <- sample(nrow(iris), 75)

df1 <- iris[a,]
df2 <- iris[-a,]

library(ggnewscale)

ggplot(mapping = aes(Sepal.Width, Sepal.Length)) +
  geom_point(data = df1, aes(colour = Petal.Length)) +
  scale_colour_gradientn(colours = c("red", "black")) +
  # Important: define a colour/fill scale before calling a new_scale_* function
  new_scale_colour() +
  geom_point(data = df2, aes(colour = Petal.Width)) +
  scale_colour_gradientn(colours = c("blue", "white"))

所有的备选方案都对未知的美学提出了警告,但这与最终的情节无关。这只是ggplot的
layer()
函数中产生此警告的一行代码,如果不对每个
geom
包装重新编码,或者像ggnewscale那样,重命名旧的美学,而不是提供新的美学,则无法绕过此警告。这些图看起来几乎一模一样,所以我想我不必再发布它们了。

是的,如果您使用
ggnewscale
软件包,您可以:

a <- sample(nrow(iris), 75)

df1 <- iris[a,]
df2 <- iris[-a,]

library(ggnewscale)

ggplot(mapping = aes(Sepal.Width, Sepal.Length)) +
  geom_point(data = df1, aes(colour = Petal.Length)) +
  scale_colour_gradientn(colours = c("red", "black")) +
  # Important: define a colour/fill scale before calling a new_scale_* function
  new_scale_colour() +
  geom_point(data = df2, aes(colour = Petal.Width)) +
  scale_colour_gradientn(colours = c("blue", "white"))

所有的备选方案都对未知的美学提出了警告,但这与最终的情节无关。这只是ggplot的
layer()
函数中产生此警告的一行代码,如果不对每个
geom
包装重新编码,或者像ggnewscale那样,重命名旧的美学,而不是提供新的美学,则无法绕过此警告。这些图看起来几乎一模一样,所以我想我不必再贴了。

回答不错(+1);出于好奇,您是否介意使用
ggnomics
添加匹配的解决方案?我已经使用备选答案(+1)发布了匹配的解决方案;出于好奇,您是否介意使用
ggnomics
添加匹配的解决方案?我已经发布了使用备选方案的匹配解决方案