R 如何用ggplot合并两种不同比例的颜色渐变
通过使用R,是否可以将2个ggplot放在一起(即,在同一个plot上),但颜色渐变条不同?我的代码,例如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
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
添加匹配的解决方案?我已经发布了使用备选方案的匹配解决方案