Co ja tu robię źle? Próbuję cienia zamieniać 24-godzinne codzienne prostokąty z przezroczystym szarym. Ale tylko ostatni prostokąt z pętli for jest rysowany (?!?). Jeśli robię to ręcznie, zamiast przez pętlę for, to działa dobrze.ggplot2: jak przezroczysto cieniu naprzemiennie dni na działce
Czy istnieje sposób na wektoryzację tego, aby uniknąć pętli for? (I czy można to zrobić za pomocą qplot?) Jestem nowy w ggplot2 i tak, czytam stronę Hadley'a, książkę i przykłady.
Drugi numer: ustawienie alfa na estetyce nie zapobiega zamknięciu prostokątów w tle. Jak uzyskać przezroczystość?
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
Dodano losowo definicja * * DAT dla powtarzalności. To składnia poleceń, która mnie bije. Domyślam się, że każde wyrażenie geom_rect przesłania ostatnie, zamiast składać, jak można się spodziewać. – smci