2011-01-19 19 views
25

Ho alcuni segnali campionati nel tempo che tracciamo in R usando linee continue. Inoltre, vorrei evidenziare diversi intervalli di tempo specifici sulla trama.Come evidenziare intervalli di tempo su un grafico?

Il mio approccio attuale consiste nel disegnare rettangoli trasparenti a tutta altezza con larghezza e posizione orizzontale appropriate che corrispondono all'intervallo di tempo. Penso che questa sia una buona rappresentazione, in quanto separa chiaramente i punti all'interno della gamma da quelli al di fuori di essa; ma ci sono quelli migliori?


E la seconda parte pratica della domanda. Ora sto tracciando i segnali in questo modo:

p <- ggplot(data=gs, mapping=aes(x=frameno, y=value, col=variable)) + 
     geom_line() 
p 

ho cercato di disegnare un rettangolo mescolato alpha manualmente:

p + geom_rect(aes(xmin=600, xmax=650, ymin=-3, ymax=3), 
       colour=alpha("grey20", 0.5), fill.alpha=0.5) 

- ma senza successo finora. Qualche suggerimento?

risposta

45

Penso che i rettangoli di disegno funzionino correttamente, non ho idea di una soluzione migliore, se a simple vertical line or lines non sono sufficienti.

e basta usare alpha=0.5 invece di fill.alpha=0.5 per il rilascio della trasparenza specificando anche inherit.aes = FALSE in geom_rect(). Per esempio. fare una trama dai dati diamanti:

p <- ggplot(diamonds, aes(x=price, y=carat)) + 
    geom_line(aes(color=color)) 

rect <- data.frame(xmin=5000, xmax=10000, ymin=-Inf, ymax=Inf) 
p + geom_rect(data=rect, aes(xmin=xmin, xmax=xmax, ymin=ymin, ymax=ymax), 
       color="grey20", 
       alpha=0.5, 
       inherit.aes = FALSE) 

alt text

Si noti inoltre che ymin e ymax potrebbe essere impostato per -Inf e Inf con facilità.

+1

Ho provato 'alpha = 0.5', che non funziona anche. Disegna un rettangolo solido, con riempimento non trasparente. ': (' – ulidtko

+0

@ulidtko: hai ragione, specificando che un nuovo data.frame è stato utilizzato è stato escluso.Io ho aggiunto un esempio concreto, spero che tu abbia bisogno di qualcosa di simile. – daroczig

+0

Esattamente ciò di cui avevo bisogno.Grazie – ulidtko

Problemi correlati