突出显示时间序列中的绘图区域

时间:2018-04-09 07:25:30

标签: r plot xts

我已将xts时间序列绘制如下:

library(xts)
data(sample_matrix)
prices <- as.xts(sample_matrix)[,"Close"]
pw_returns <- diff(log(prices))
plot(pw_returns, main="", col="darkblue", lwd=1)

我想强调波动率集群,如下图所示:

enter image description here

有人知道怎么在R?

1 个答案:

答案 0 :(得分:1)

您可以使用addPolygon()执行此操作。它将有助于创建一个包含阴影区域的上限和下限的中间对象。

nr <- nrow(pw_returns)
shade <- cbind(upper = rep(1, nr), lower = rep(-1, nr))
shade <- xts(shade, index(pw_returns))

现在我们可以为我们想要的任何时期绘制并添加阴影区域。请务必设置on = -1以在主图下隐藏背后的阴影区域。

# main plot
plot(pw_returns, main = "", col = "darkblue", lwd = 1)
# add shaded region to February, 2007
addPolygon(shade["2007-02"], col = "lightpink", on = -1)

xts plot with shaded region