Was mache ich hier bitte falsch? Ich versuche, 24-Stunden-Tagesrechtecke 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 gut.ggplot2: wie man abwechselnde Tage auf einer Handlung transparent schattiert
Gibt es eine Möglichkeit, dies zu vektorisieren, um die For-Schleife zu vermeiden? (Und kann es mit qplot getan werden?) Ich bin neu in ggplot2 und ja, ich lese durch Hadleys Website, Buch und Beispiele.
Zweites Problem: Die Alpha-Einstellung auf die Ästhetik verhindert nicht, dass die Rechtecke den Hintergrund verdecken. Wie bekomme ich Transparenz?
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
Hinzugefügt zufällige Definition * dat * für die Reproduzierbarkeit. Es ist die Befehlssyntax, die mich schlägt. Ich nehme an, dass jeder geom_rect den letzten überschreibt, anstatt wie gewohnt zu komponieren. – smci