在R的预测包中为预测行添加图例条目

时间:2018-10-25 20:45:37

标签: r ggplot2 forecasting

我有一个通过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"))

看起来像这样: enter image description here

如您所见,除了代表预测点的深蓝色线之外,我还向图例添加了所有内容。

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

编辑: 该解决方案基于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)

enter image description here

2 个答案:

答案 0 :(得分:2)

只需使用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"))

然后您可能需要使用这些颜色。

答案 1 :(得分:-1)

我取得了以下成就,但仍然无法获得传说

 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”