如何将自动绘图+自动图层与xts对象一起使用?

时间:2018-08-19 02:50:58

标签: r ggplot2 time-series xts

我正在尝试使用autolayer中的autoplot函数,以便区分图片中的预测部分和测试部分,但是我正在使用xts对象。我使用window函数来划分两组数据,但是当我使用autolayer中的autoplot函数时,出现以下错误:

  

错误:自动图层不支持xts / zoo类型的对象

问题是:是否可以使用其他方法用xts对象绘制相似的图形?预先感谢您的帮助。

Seriet.xts_train <- window(Seriet.xts, 
                           start = as.Date("2015-01-01"), 
                           end = as.Date("2017-12-31"))
Seriet.xts_train

-2015-01-01 03:00:00 1125
-2015-01-01 04:00:00 1086
-2015-01-01 05:00:00  978
-2015-01-01 06:00:00  947
-2015-01-01 07:00:00 1020
-2015-01-01 08:00:00 1303
-2015-01-01 09:00:00 1557

Seriet.xts_test <- window(Seriet.xts, start = as.Date("2018-01-01"))

Seriet.xts_test

-2018-01-01 03:00:00   55
-2018-01-01 04:00:00   30
-2018-01-01 05:00:00    9
-2018-01-01 06:00:00   13
-2018-01-01 07:00:00   19
-2018-01-01 08:00:00   49
-2018-01-01 09:00:00   43


st.fc.snaive <- snaive(Seriet.xts_train, h=24)

autoplot(st.fc.naive) + autolayer(Seriet.xts_test, series="Conjunto de validación")
  

错误:自动图层不支持xts / zoo类型的对象。

3 个答案:

答案 0 :(得分:2)

如果您想通过将训练点涂成黑色和将测试点涂成红色来区分训练和测试,请说:

python manage.py makemigrations
python manage.py migrate

或者仅仅是这个:

col <- rep(1:2, c(nrow(train), nrow(test)))
autoplot(rbind(train, test)) + geom_point(col = col)

答案 1 :(得分:0)

R中至少有2个 autolayer 函数,一个在 ggplot2 包中,另一个在 precast 包中。

错误可能是您正在使用软件包 ggplot2 中的一个。

如果正确指定了原点,则可以使用,仅替换为: autolayer 通过 forecast :: autolayer

答案 2 :(得分:0)

这不是一个很好的解决方案,但是也许在最后阶段更改xts对象的类型ts对象将是一个解决方案。

autoplot(ts(a_xts,start=c(2019,4,16),frequency = 
365.25))+autolayer(ts(b_xts,start=c(2019,4,16),frequency = 365.25))