在R中使用scale_fill_manual修改折线图颜色无效的问题
问题原因与解决办法
问题根源
你代码里用了scale_fill_manual()来修改颜色,但这个函数是控制填充色的(比如柱状图的填充区域、面积图的填充部分),而你的折线图是通过aes(color = Countries)来映射线条颜色的,所以scale_fill_manual()根本不会影响线条的颜色,这就是颜色没变化的原因。
另外你写的颜色名"aqua marine"是错误的,R的内置颜色里对应的是"aquamarine"(没有空格),带空格的话R会识别不了这个颜色。
解决代码
把scale_fill_manual()替换成scale_color_manual(),同时修正颜色名:
df <- pivot_longer(temperature, cols = c(Spain, Cyprus, Iceland, Austria), values_to = "Temperature", names_to = "Countries") ggplot(df, aes( x = Year, y = Temperature, color = Countries )) + geom_line() + ggtitle("Trend of Temperature in 4 European countries") + xlab("Year") + ylab("Temperature[C]") + scale_color_manual(values = c("aquamarine", "teal", "lime", "yellow"))
进阶优化(可选)
如果想让颜色和指定国家严格对应,避免顺序错乱,可以用命名向量来指定:
scale_color_manual( values = c( Spain = "aquamarine", Cyprus = "teal", Iceland = "lime", Austria = "yellow" ) )
内容的提问来源于stack exchange,提问作者user19729000
相关产品推荐
相关产品推荐

