You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 07:09:12