¿Qué estoy haciendo mal aquí, por favor? Estoy tratando de sombrear rectángulos alternos de 24 horas con gris transparente. Pero solo se dibuja el último rectángulo del for-loop (?!?) Si hago las cosas manualmente en lugar de for-loop, funciona bien.ggplot2: cómo sombrear transparentemente los días alternos en una parcela
¿Hay alguna manera de vectorizar esto para evitar el for-loop? (¿Y se puede hacer con qplot?) Soy nuevo en ggplot2 y sí, lo leo en 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 obtener transparencia?
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
Alta definición aleatoria de dat * * para la reproducibilidad. Es la sintaxis del comando lo que me está golpeando. Supongo que cada geom_rect anula el último en lugar de componer como podrías esperar. – smci