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

如何为展示多组预测结果的ggplot折线图添加对应标签图例

解决方法

ggplot只有当你把颜色这类美学参数放在aes()内部映射到变量时,才会自动生成对应图例。你当前的代码是把折线颜色硬编码在aes()外部,所以不会生成折线的标签图例,只要调整geom_line的颜色映射逻辑,再手动绑定颜色和标签即可,原有标题、副标题、说明类配置都不需要改动。

修改后的完整代码如下:

library(ggplot2)

ggplot(Forecast_df, aes(date)) + 
  geom_tile(aes(alpha = Recession, y = 1), 
            fill = "grey", height = Inf) +
  scale_alpha_continuous(range = c(0, 1), breaks = c(0, 1), labels = c("0" = "扩张期", "1" = "衰退期"))+
  # 把color放进aes内,值设置为你想要显示的图例标签
  geom_line(aes(y = ERVOLY, col = "实际值"), size = .8)+
  geom_line(aes(y = ERVOL_vanilla, col = "单因子预测值"), size = .8)+
  geom_line(aes(y = ERVOL_twofactor, col = "双因子预测值"), size = .8)+
  geom_line(aes(y = ERVOL_threefactor, col = "三因子预测值"), size = .8)+
  # 手动绑定标签和对应颜色
  scale_color_manual(values = c(
    "实际值" = "black",
    "单因子预测值" = "blue",
    "双因子预测值" = "green",
    "三因子预测值" = "orange"
  ), name = "经济变量")+
  ylab('未来12个月复合收益率(%)')+
  labs(x = NULL, alpha = "经济周期",
       title = "2021年通胀预期上行",
       caption = '克利夫兰联储10年期通胀预期模型',
       subtitle = '"方向性至关重要"')+
  theme(plot.background = element_blank(),
        panel.grid.minor = element_blank(),
        panel.grid.major= element_blank(),
        text = element_text( color = "#003366"))

你可以根据自己的需求修改aes(color = "xxx")内的标签文字,只要保证和scale_color_manual内的映射关系对应即可。

内容的提问来源于stack exchange,提问作者MacroChair

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:36:00