ggplot2: cómo sombrear de forma transparente los días alternos en una parcela

¿Qué estoy haciendo mal aquí por favor? Estoy tratando de sombrear rectángulos diarios de 24 horas con gris transparente. Pero solo el último rectángulo del for-loop se dibuja (?!?) Si hago las cosas manualmente en lugar de hacerlo por for-loop, funciona bien.

¿Hay una manera de vectorizar esto para evitar el bucle for? (¿Y se puede hacer con qplot?) Soy nuevo en ggplot2 y sí leí el sitio, el libro y los ejemplos de Hadley.

Segundo problema: la configuración alfa en la estética no impide que los rectángulos ocluyan el fondo. ¿Cómo conseguir transparencia?

<code>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
</code>

Respuestas a la pregunta(1)

Su respuesta a la pregunta