ggplot2: jak przezroczysto cieniuć alternatywne dni na fabule
Co ja tu źle robię? Próbuję zaciemnić na przemian 24-godzinne prostokąty dzienne z przezroczystym szarym. Ale rysowany jest tylko ostatni prostokąt z pętli for-loop (?!?) Jeśli robię rzeczy ręcznie zamiast przez for-loop, działa dobrze.
Czy istnieje sposób na wektorowanie tego w celu uniknięcia pętli for? (Czy można to zrobić za pomocą qplot?) Jestem nowym użytkownikiem ggplot2 i tak, przeczytałem stronę Hadleya, książkę i przykłady.
Druga sprawa: ustawienie alfa na estetyce nie przeszkadza prostokątom zasłaniającym tło. Jak uzyskać przejrzystość?
<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>