ggplot2中使用scale_color_manual修改geom_point散点颜色不生效怎么办
问题原因
- 你在
geom_point()中直接指定的color = "Green"属于静态固定赋值,没有纳入ggplot的美学映射体系,scale_color_*系列函数仅对通过aes()声明的映射属性生效,因此不会修改你已经写死的散点颜色。 - 你使用的十六进制色值格式不符合R的要求,十六进制颜色需要添加前缀
#,否则无法被正确识别为有效颜色值。
解决方案
你可以根据使用场景二选一:
场景1:仅需要所有散点统一为目标绿色(最简便)
直接修改geom_point()中的color参数即可,不需要额外调用scale函数:
p = ggplot(data = swissnew, aes(x = Fertility, y = Education)) p + geom_point(color = "#00FF33", size = 4, alpha = .3)
场景2:需要通过scale函数控制颜色(例如后续要扩展分组颜色映射)
将color属性放到aes()中绑定到映射体系,再用scale函数指定色值:
p = ggplot(data = swissnew, aes(x = Fertility, y = Education)) # aes内的字符串仅为颜色分组标记,不代表实际渲染色值 p = p + geom_point(aes(color = "散点"), size = 4, alpha = .3) # 手动指定对应分组的渲染色值 p + scale_color_manual(values = "#00FF33")
内容的提问来源于stack exchange,提问作者Ace123
相关产品推荐
相关产品推荐

