我试图用ggplot2复制Davenport的时间序列图。我从他的博客中复制了代码,并在这里做了我从别人那里得到的修改。代码如下,
set.seed(1234)
y<-arima.sim(model=list(order=c(2,1,1),ar=c(0.5,.3),ma=0.3),n=144)
y<-ts(y,freq=12,start=c(2000,1))
yt<-window(y,end=2009.99)
yfit<-Arima(yt,order=c(1,0,1))
yfor<-forecast(yfit)
pd<-funggcast(y,yfor)
library(ggplot2)
library(scales)
p1a<-ggplot(data=pd,aes(x=date,y=observed))
p1a<-p1a+geom_line(col='red')
p1a<-p1a+geom_line(aes(y=fitted),col='blue')
p1a<-1a+geom_line(aes(y=forecast))+geom_ribbon(aes(ymin=lo95,ymax=hi95),
alpha=.25)
p1a<-p1a+scale_x_date(name='',date_breaks='1 year',minor_breaks='1 month',labels=date_format("%b-%y"),expand=c(0,0))
p1a<-p1a+scale_y_continuous(name='Units of Y')
p1a<-p1a+opts(axis.text.x=theme_text(size=10),title='Arima Fit to Simulated Data\n (black=forecast, blue=fitted, red=data, shadow=95% conf. interval)')
p1a
直到
行p1a<-p1a+geom_line(aes(y=fitted),col='blue')
一切都是它的存在方式。但是当我运行下一行时,即
p1a<-p1a+geom_line(aes(y=forecast))+geom_ribbon(aes(ymin=lo95,ymax=hi95),alpha=.25)
p1a
结果如下,
如果我继续运行剩下的代码,我会得到“strsplit中的错误(unitspec,”“):代码行的非字符参数
p1a<-p1a+scale_x_date(name='',date_breaks='1 year',minor_breaks='1 month',labels=date_format("%b-%y"),expand=c(0,0))
p1a
最后R找不到“opts”功能。所以我想知道我做错了什么或如何解决它。提前谢谢!