iago Asked: 2024-07-07 00:35:09 +0800 CST2024-07-07 00:35:09 +0800 CST 2024-07-07 00:35:09 +0800 CST 将不同的调色板分配给不同的几何图形,但比例相同 772 例如 library(ggplot2) ggplot(iris, aes(Sepal.Length, Sepal.Width))+ geom_point(aes(color = Species)) + geom_smooth(aes(color = Species, fill = Species), method = "lm", se = FALSE) 是否有某种方法可以将调色板(例如通过scale_color_discrete)分配给点,并将不同的调色板分配给产生的线geom_smooth? 谢谢你! 1 个回答 Voted Best Answer ryanzom 2024-07-07T01:35:11+08:002024-07-07T01:35:11+08:00 在 中没有非常干净的方法来执行此操作ggplot2,但有一个名为 的包ggnewscale可以提供帮助。 library(ggplot2) library(ggnewscale) ggplot(iris, aes(Sepal.Length, Sepal.Width))+ geom_point(aes(color = Species)) + scale_colour_brewer(palette = 1) + ggnewscale::new_scale_color() + geom_smooth(aes(color = Species), method = "lm", se = FALSE) + scale_colour_brewer(palette = 2) #> `geom_smooth()` using formula = 'y ~ x' 创建于 2024-07-06,使用reprex v2.1.1 另一种解决方案是不需任何新包,而只是改变color并fill赋予点形状。 library(ggplot2) library(ggnewscale) ggplot(iris, aes(Sepal.Length, Sepal.Width))+ geom_smooth(aes(color = Species), method = "lm", se = FALSE) + geom_point(aes(fill = Species), shape = 21, size = 3, colour="transparent") + scale_colour_brewer(palette = 2) + scale_fill_brewer(palette = 1) #> `geom_smooth()` using formula = 'y ~ x' 创建于 2024-07-06,使用reprex v2.1.1
在 中没有非常干净的方法来执行此操作
ggplot2
,但有一个名为 的包ggnewscale
可以提供帮助。创建于 2024-07-06,使用reprex v2.1.1
另一种解决方案是不需任何新包,而只是改变
color
并fill
赋予点形状。创建于 2024-07-06,使用reprex v2.1.1