2016-08-13 74 views
1

良好的一天,操纵x轴为预测/时间序列对象

我试图切断/变焦在R.时间序列/ ARIMA代码生成预测的右侧如下所示。我已经尝试了多种使用子集的方法,xlimit,但我无法继续。我尝试了coord_cartersian,但我不确定这是否适用于预测数据集(试图研究预测/ ggplot包文档而没有明确的答案)。

下面是我的代码

#time series from January 1st  2012 until 10th of august 2016 
dd = ts(data = dailydemand, frequency = 365) 
dd.arima = auto.arima(dd) # Auto arima 
dd.f = forecast.Arima(dd.arima, h = 7) # forecast 7 days 
# getting the quantity needed for next day 
n2.cnt = as.data.frame(dd.f) 
n2.cnt = as.numeric(round(dd.f [1,1])) 
autoplot(dd.f) + 
    ggtitle("Daily demand forecast") + 
    ylab("Count of cars") + 
    geom_hline(dd.f, yintercept = n2.cnt) 

coord_cartesian没有工作,我也试着变焦包最近3天内

+0

是什么'ATTR(dd.f $ X, “TSP”)'返回? –

回答

2

coord_cartesian似乎为我工作的放大。您没有提供minimal reproducible example(请在下次使用),因此我在此使用AirPassengers数据集作为示例。

library(forecast) 
library(ggplot2) 
library(gridExtra) 

dd <- AirPassengers 
dd.arima <- auto.arima(dd) # Auto arima 
dd.f <- forecast.Arima(dd.arima, h = 12) # forecast 12 months 

检查attr(dd.f$x, "tsp")。 x轴似乎是在实际的年,所以我们据此表达coord_cartesian的限制:

attr(dd.f$x, "tsp") 
# [1] 1949.000 1960.917 12.000 
g1 <- autoplot(dd.f) + 
    ggtitle("Air passengers forecast") + 
    ylab("y") 
g2 <- autoplot(dd.f) + 
    ggtitle("Air passengers forecast") + 
    ylab("y") + 
    coord_cartesian(xlim = c(1960, 1962.1)) 
grid.arrange(g1, g2, ncol=2) 

enter image description here