Cosa sto facendo male qui per favore? Sto provando a ombreggiare rettangoli giornalieri di 24 ore con grigio trasparente. Ma solo l'ultimo rettangolo del ciclo for viene disegnato (?!?) Se faccio le cose manualmente invece che for-loop, funziona bene.ggplot2: come ombreggiare in modo trasparente giorni alternati su una trama
C'è un modo per vettorizzare questo per evitare il ciclo? (E può essere fatto con qplot?) Sono nuovo di ggplot2 e sì ho letto il sito, il libro e gli esempi di Hadley.
Secondo problema: l'impostazione alfa sull'estetica non impedisce ai rettangoli di occludere lo sfondo. Come ottenere la trasparenza?
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
Aggiunto definizione casuale di * dat * per la riproducibilità. È la sintassi del comando che mi sta battendo. Immagino che ogni geom_rect sovrascrive l'ultimo anziché il compositing come ci si potrebbe aspettare. – smci