我使用2017年1月至2019年7月的月度数据生成了一年预测,并使用了创新的状态空间模型进行指数平滑。
library("forecast")
library("ggplot2")
library("scales")
myData<-c(11878838,11025085,13346905,11657777,12670973,12321707,10668589,13296366,10976129,13383487,11157827,9064816,
10712529,11058177,11220417,12010494,11824792,10623115,10171066,13388616,11249052,14134987,10795036,9001540,
10561734,10658972,11689656,10351909,11062358,9858083,9779142)
ts_myData<-ts(myData, frequency=12, start=c(2017,1), end=c(2019,7))
model<-ets(ts_myData, model="MNM")
fcast_units<-forecast(model, h=12, PI=TRUE)
autoplot(fcast_units)+
xlab("Year")+
ylab("Number of units")+
ggtitle("My forecast")+
scale_y_continuous(label=comma) # this line is to avoid scientific notation and use the format you see on the y-label
问题是我想更改绘图的x轴,但似乎无法弄清楚该怎么做。我想看到从2017年1月到2020年7月的所有月份。现在的情节看起来像这样。
如果查看当前图,则可以推断出白色竖线代表一年的开始和结束以及六月的月份,但我希望每年都有12条。我尝试使用scale_x_date
和scale_x_datetime
,但是它们不起作用(也许我没有正确指定参数?)。也许问题是fcast
属于forecast
类?我不确定。
感谢您的帮助。
答案 0 :(得分:0)
这种代码的工作方式。
autoplot(fcast_units)+
xlab("Year")+
ylab("Number of units")+
ggtitle("My forecast")+
scale_y_continuous(label=comma)+
scale_x_continuous(breaks = seq(2017 , 2020, 1/6))