2016-08-13 28 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