请问我在这里做错了什么?我正在尝试用透明灰色遮蔽每天 24 小时的交替矩形。但是只有来自 for 循环的最后一个矩形被绘制(?!?)如果我手动而不是通过 for 循环来做事情,它工作正常。
有没有办法对其进行矢量化以避免for循环?(可以用 qplot 完成吗?)我是 ggplot2 的新手,是的,我阅读了 Hadley 的网站、书籍和示例。
第二个问题:美学上的 alpha 设置不会阻止矩形遮挡背景。如何获得透明度?
dat <- data.frame(my_x_series=1:192, my_y_series=5.0*runif(192))
# (ymin, ymax are computed for this series using min/max(na.rm==TRUE))
ymax <- 5.0
ymin <- 0.0
p <- ggplot(dat, aes(x=my_x_series,alpha=0.9))
alternate_daily_bars_xmin <- c(4,52,100,148)
for (shade_xmin in alternate_daily_bars_xmin) {
shade_xmax <- min(shade_xmin+24, 192) # clamp at end of x-range
p <- p + geom_rect(aes(alpha=0.5,xmin=shade_xmin,xmax=shade_xmax,ymin=ymin,ymax=ymax), fill='gray80')
}
p <- p + geom_point(aes(y=my_y_series))
p