ggplot2中geom_bar使用scale_color_manual指定颜色不生效的问题排查
问题分析:scale_color_manual未生效的原因与解决办法
我来帮你排查这个问题——你遇到的是ggplot2里一个很容易踩的小坑,咱们一步步理清楚:
首先看你的代码逻辑:你在aes()里用了fill = ColorGroup来指定条形的填充颜色,但后面调用的是scale_color_manual(),这两个函数的作用完全不一样!
scale_color_manual()是用来控制线条、点这类元素的轮廓/标记颜色的,比如geom_line、geom_point的颜色;- 而你要修改的是条形内部的填充色,对应的正确函数是
scale_fill_manual()。
把代码里的scale_color_manual换成scale_fill_manual就能生效了,修正后的完整代码如下:
cols33 <- c("1Male" = "yellow", "1Female" = "orange", "2Male" = "red", "2Female" = "blue") ggplot(data=data2, aes(x=School, y=Value, group = Gender, fill = ColorGroup)) + geom_bar(stat = "identity", position = position_dodge(), width = 0.5) + scale_fill_manual(name="", values=cols33)
另外再提个小细节:可以提前确认下ColorGroup列的所有类别和cols33里的键完全匹配,比如有没有大小写、拼写错误,这也是这类问题常见的诱因。
内容的提问来源于stack exchange,提问作者Vik G
相关产品推荐
相关产品推荐

