ggplot2: wie man abwechselnde Tage auf einem Grundstück transparent schattiert

Was mache ich hier bitte falsch? Ich versuche, täglich 24 Stunden abwechselnd Rechtecke mit transparentem Grau zu schattieren. Aber nur das letzte Rechteck aus der for-Schleife wird gezeichnet (?!?) Wenn ich Dinge manuell anstelle von for-Schleife mache, funktioniert es einwandfrei.

Gibt es eine Möglichkeit, dies zu vektorisieren, um die for-Schleife zu vermeiden? (Und kann es mit qplot gemacht werden?) Ich bin neu bei ggplot2 und habe Hadleys Site, Buch und Beispiele durchgelesen.

Zweites Problem: Die Alpha-Einstellung in der Ästhetik verhindert nicht, dass die Rechtecke den Hintergrund verdecken. Wie bekomme ich Transparenz?

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

Antworten auf die Frage(1)

Ihre Antwort auf die Frage