【问题标题】:Add legend entry for prediction line in R's forecast package在 R 预测包中添加预测线的图例条目
【发布时间】:2019-03-30 13:44:28
【问题描述】:

我有一张通过fcast <- forecast(Arima(data$train, order=...))获得的预测对象图:

fcast %>% autoplot(series='Forecast') +
  autolayer(fitted(fit), series='Fitted') + 
  autolayer(data$train, series = 'Train') +
  autolayer(data$test, series='Test') +
  xlab("Observation [days]") +
  ylab("Energy [Watts]") +
  guides(colour=guide_legend(title="Data series"), 
         fill=guide_legend(title="Prediction interval"))

看起来像这样:

如您所见,我在图例中添加了所有内容,除了表示预测点的深蓝色线。

如何将预测点(深蓝色线)添加到图例中?

编辑: 该解决方案基于 Rob Hyndman 的回答:

clrs <- c("blueviolet", "blue", "darkgoldenrod4", "red")

autoplot(fcast) +
  autolayer(fcast$mean, series="Forecast") +
  autolayer(fitted(fit), series='Fitted') + 
  autolayer(data$train, series = 'Train') +
  autolayer(data$test, series='Test') +
  xlab("Observation [days]") +
  ylab("Energy [Watts]") +
  guides(colour=guide_legend(title="Data series"), 
         fill=guide_legend(title="Prediction interval")) +
  scale_color_manual(values=clrs)

【问题讨论】:

标签: r ggplot2 forecasting


【解决方案1】:

只需使用autolayer 再次添加即可:

autoplot(fcast) +
  autolayer(fcast$mean, series="Forecast") +
  autolayer(fitted(fit), series='Fitted') + 
  autolayer(data$train, series = 'Train') +
  autolayer(data$test, series='Test') +
  xlab("Observation [days]") +
  ylab("Energy [Watts]") +
  guides(colour=guide_legend(title="Data series"), 
         fill=guide_legend(title="Prediction interval"))

那么你可能需要玩弄颜色。

【讨论】:

  • 赞成,因为这确实符合我的要求,但我不确定如何匹配颜色,而不是预测间隔的颜色与图例上的颜色不同(默认蓝色)。请问有什么提示吗?
  • 确实,它适用于默认的colour 美学,我用最终代码编辑了我的答案。但是,由于“错误:提供给离散比例的连续值”,我仍然无法使用... + scale_color_manual(values=c("#FF0000", "#0000FF"), aesthetics = "fill") 更改图例中的两个小方块。接受答案,因为它导致了解决方案,谢谢。
【解决方案2】:

我做了以下,但我仍然无法得到传说

 autoplot(arima_kw_Pat)+
      xlab("Day")+
      ylab("Under Treatment")+
      ggtitle("Patients Under Treatment in Kuwait ARIMA")+
      guides(colour=guide_legend(title="Data series"), 
              fill=guide_legend(title="Prediction interval"))+
      scale_color_manual(values=clrs)

相反,我收到以下错误 is_missing(values) 中的错误:找不到对象“clrs”

【讨论】:

  • 这是一个答案吗?看起来更像是一个问题或评论?查看How to Answer
  • 这确实应该是另一个问题,但正如错误所说,您缺少 clrs 变量,请参阅我的代码以了解其定义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-16
相关资源
最近更新 更多