操作预测/时间序列对象的x轴

3

您好,

我正在尝试剪切/放大 R 生成的预测图表中的右侧。时间序列/ARIMA 代码如下所示。我尝试使用 subset、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不起作用,我已经尝试了zoom包来缩放最近3天。


attr(dd.f$x, "tsp") 返回什么? - Weihuang Wong
1个回答

4

coord_cartesian 对我来说有效。由于您没有提供一个最小可复现示例(请下次提供),因此在此我使用了 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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接