在[R]中绘制类别(预测)的时间序列列表 [英] Plotting a list of timeseries of class(forecast) in [R]

查看:55
本文介绍了在[R]中绘制类别(预测)的时间序列列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用预测的时间序列数据列表来绘制时间序列图的多面网格(最好是3X3).数据嵌套在列表中,并且属于class Forecast :: forecast.

I am trying to plot a faceted grid of timeseries plots (ideally 3X3) using a list of forecast timeseries data. The data is nested within a list and is of class forecast::forecast.

 > class(forecasts)
[1] "list"
> class(forecasts$`1_1`)
[1] "forecast"
> head(forecasts, 2)
$`1_1`
         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
Dec 2016       7.370299 7.335176 7.405422 7.316583 7.424015

$`1_10`
         Point Forecast    Lo 80    Hi 80    Lo 95    Hi 95
Dec 2016       7.396656 7.359845 7.433467 7.340359 7.452953

我想绘制数据,到目前为止,我已经尝试过了:

I would like to plot the data, so far i've tried this:

> map2(forecasts, names(forecasts), 
+      function(forecast, time_series) plot(forecast, 
+                                       main= "Blank", 
+                                       bty="n",
+                                       ylab="Monthly Revenue",
+                                       xlab="Time"))

它返回此:

我似乎无法弄清楚如何添加相应的列表标签名称,因此我在其中放置了字符串"Blank"作为占位符.

I can't seem to figure out how to add the corresponding list label names so i've put a character string "Blank" in there as a placeholder.

如果有人有任何解决方案来绘制预测格式时间序列数据列表,我将不胜感激.

If anyone has any solution for plotting lists of forecast format time series data I would greatly appreciate it.

    > names(forecasts)
 [1] "1_1"   "1_10"  "1_2"   "1_3"   "1_4"   "1_5"   "1_6"   "1_7"   "1_8"   "1_9"   "10_1" 
[12] "10_10" "10_2"  "10_3"  "10_4"  "10_5"  "10_7"  "10_8"  "10_9"  "2_1"   "2_10"  "2_2"  
[23] "2_3"   "2_4"   "2_5"   "2_6"   "2_7"   "2_8"   "2_9"   "3_1"   "3_10"  "3_2"   "3_3"  
[34] "3_4"   "3_5"   "3_6"   "3_7"   "3_8"   "3_9"   "4_1"   "4_10"  "4_2"   "4_3"   "4_4"  
[45] "4_5"   "4_6"   "4_7"   "4_8"   "4_9"   "5_1"   "5_10"  "5_2"   "5_3"   "5_4"   "5_5"  
[56] "5_6"   "5_7"   "5_8"   "5_9"   "6_1"   "7_1"   "7_10"  "7_2"   "7_3"   "7_4"   "7_5"  
[67] "7_6"   "7_7"   "7_8"   "7_9"   "8_1"   "8_10"  "8_2"   "8_3"   "8_4"   "8_5"   "8_6"  
[78] "8_7"   "8_8"   "8_9"   "9_1"   "9_10"  "9_2"   "9_3"   "9_4"   "9_5"   "9_6"   "9_7"  
[89] "9_9" 

推荐答案

您可以使用其中之一

par(mfrow = c(3, 3))

map2(forecasts, names(forecasts), 
      ~ plot(       .x, 
             main = .y, 
             bty  = "n",
             ylab = "Monthly Revenue",
             xlab = "Time"))

# same as map2 but returns nothing
# suitable for plotting & writing output to files
walk2(forecasts, names(forecasts), 
      ~ plot(       .x, 
             main = .y, 
             bty  = "n",
             ylab = "Monthly Revenue",
             xlab = "Time"))

pwalk(list(forecasts, names(forecasts)), 
      ~ plot(       ..1, 
             main = ..2, 
             bty  = "n",
             ylab = "GDP",
             xlab = "Year"))

# to save some typing
iwalk(forecasts, 
      ~ plot(       .x, 
             main = .y, 
             bty  = "n",
             ylab = "Monthly Revenue",
             xlab = "Time"))

PS:在您的函数中不需要 time_series ,因为您没有在随后的 plot 调用

P.S: time_series in your function is not needed as you're not using it in the subsequent plot call

这篇关于在[R]中绘制类别(预测)的时间序列列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆