R语言中ggplot柱状图颜色无法修改问题求助
问题原因及解决方法
- 问题出在填充色的映射关系没建立:
scale_fill_manual是用来将分类变量的不同取值对应到指定颜色的工具,但你的geom_bar里,aes()中只指定了x轴的species,没有把fill属性和species变量绑定,所以这个颜色映射规则找不到作用对象,柱子只能保持默认灰色。
修正后的代码(两种方式)
方式一:初始绘图时绑定fill映射
barchart <- ggplot(data=penguins)+ geom_bar(mapping=aes(species, fill=species)) barchart + scale_fill_manual(values = c("Adelie"="purple","Chinstrap"="orange", "Gentoo"="green"))
方式二:后续补充fill映射
barchart <- ggplot(data=penguins)+ geom_bar(mapping=aes(species)) barchart + aes(fill=species) + scale_fill_manual(values = c("Adelie"="purple","Chinstrap"="orange", "Gentoo"="green"))
额外说明
如果只是想给所有柱子设置同一种颜色,不需要用scale_fill_manual,直接把fill参数放在aes()外面即可:
ggplot(data=penguins)+ geom_bar(mapping=aes(species), fill="purple")
内容的提问来源于stack exchange,提问作者Brian Mak
相关产品推荐
相关产品推荐

