如何用多边形突出显示时间序列预测的置信区域

时间:2016-05-31 13:44:00

标签: r plot time-series polygon confidence-interval

我正在尝试使用两条蓝线之间的多边形函数为时间序列绘图着色,如下所示。

我的代码如下: enter image description here

生成上图的代码如下:

set.seed(2)
Original <- ts(na.omit(rnorm(1:96,mean=20, sd=1)), frequency = 12, start=c(2008,1))
upper <- ts(na.omit(rnorm(1:96,mean=30, sd=1)), frequency = 12, start=c(2015,1),end=c(2015,12))
lower <- ts(na.omit(rnorm(1:96,mean=10, sd=1)), frequency = 12, start=c(2015,1),end=c(2015,12))
predict <- ts(na.omit(rnorm(1:96,mean=18, sd=1)), frequency = 12, start=c(2015,1),end=c(2015,12))

par(mfrow=c(1,1))
plot(Original,type="l",col="gray", ylim=c(0,50))
lines(upper,col="blue")
lines(lower,col="blue")
lines(predict,col="red", lwd="2")               

我目前使用的面部函数如下:

polygon(x= c(tmp,rev(tmp)),y= c(upper,rev(lower)), col="grey", border=NA)

上述代码很好,但我的X坐标除外。我无法指定X坐标,因为它是一个时间序列。时间序列是每月。蓝线于2015年1月开始,于2015年12月结束。

有没有办法指定&#34; X&#34; 2015年1月至2015年12月期间向量/矩阵/日期框架中的时间序列坐标?

我的目标:我想为两条蓝线之间的区域着色,并且只在两条蓝线之间。因此,使用Polygon。

1 个答案:

答案 0 :(得分:1)

好的,您的问题是:我如何在调用tmp时获得变量polygon的适当值。

现在,试试这个:

tmp <- seq(from = 2015, by = 1/12, length = 12)
polygon(x= c(tmp,rev(tmp)),y= c(upper,rev(lower)), col="grey", border=NA)

enter image description here

但你可以自己动手让剧情看起来更好,例如改变线条颜色,线宽。此外,您可能需要先考虑绘制多边形,然后覆盖时间序列图。