我正在寻求实现EXACTLY this,但使用plot()而不是ggplot2。在博客上甚至有人说他们用情节做了这个回复,但他们代码的链接已经死了。我真的试图做同样的事情。我已经使用quantmod的getSymbols()从FRED下载了数据,并且我将数据放在df中,我正在用plot()绘制。 x轴是日期,我想根据一组特定的日期更改背景颜色。任何想法或提示如何用情节做到这一点?
谢谢!
答案 0 :(得分:1)
基于这个问题:R: change background color of plot for specific area only (based on x-values)
## plotting area with no axes
plot(unrate.df, type = "n")
lim <- par("usr")
## adding one rectangle
for (i in 1:nrow(recessions.trim)) {
rect(recessions.trim[i, 1], lim[3],
recessions.trim[i, 2], lim[4], border = "pink", col = "pink")
}
## adding the data
lines(unrate.df)
box()
答案 1 :(得分:1)
您可以使用:
plot(unrate.df, type="n")
makeRectangles(recessions.trim, col="pink", alpha=0.5)
lines(unrate.df)
grid()
其中函数makeRectangles
定义为:
makeRectangles = function(x, col, alpha=1, border=NA, ...) {
col = col2rgb(col=col, alpha=FALSE)
col = rgb(red=col[1], green=col[2], blue=col[3],
alpha=floor(255*alpha) , maxColorValue=255)
rect(x[,1], par("usr")[3], x[,2], par("usr")[4], col=col, border=border, ...)
return(invisible())
}