R中geom_histogram()的color参数为何生成图例而非修改图表颜色?
解决ggplot2直方图颜色设置生成多余图例的问题
问题出在你把color = "#9999EE"放在了geom_histogram()的aes()函数内部。ggplot的aes()是用来做变量美学映射的,它会把你传入的颜色值当成一个分类变量处理,因此自动生成图例。而stat_function()里的col="red"是直接设置图形属性(不在aes()内),所以不会触发图例生成。
修正方法很简单,把固定颜色的参数移到aes()外面,作为geom_histogram()的直接参数:
ggplot(df, aes(`Column`)) + geom_histogram(aes(y = ..density..), color = "#9999EE", fill = "#CCDDFF") + stat_function(fun = dnorm , args = list(mean = MeanVar , sd = StdVar ) , col = "red" , size = 1 ) + xlim(0,50)
补充说明:
- 如果你需要根据数据中的某个变量(比如分组列)来映射不同颜色,才需要把
color或fill放在aes()里(比如aes(color = GroupColumn))。 - 只要是固定的单一颜色,直接放在geom层的参数中即可,不会生成多余图例。
内容的提问来源于stack exchange,提问作者Lachlan Macnish
相关产品推荐
相关产品推荐

