2015-03-24 12 views
5

sto riferendosi a questa domanda SO da 2 anni fa, con ggplot: Adjust Transparency (alpha) of stat_smooth lines, not just transparency of Confidence IntervalControllo di liscia e intervallo di confidenza

Il primo metodo suggerito permette di impostare la trasparenza alpha dell'intervallo di confidenza da solo:

ggplot(head(airquality, 60), aes(x=Day, y=Temp, color=factor(Month))) + 
    geom_point() + stat_smooth(method = "lm", se=TRUE, alpha=1.0) 

enter image description here

il secondo metodo permette di impostare la trasparenza alfa per la linea stessa, ma si sciolto l'intervallo di confidenza del Intanto, anche con se=TRUE:

ggplot(head(airquality, 60), aes(x=Day, y=Temp, color=factor(Month))) + 
    geom_point() + geom_line(stat='smooth', method = "lm", se=TRUE, alpha=0.3) 

enter image description here

La mia domanda: Come controllare la trasparenza sia la linea di levigatura e l'intervallo di confidenza?

risposta

6

Questo calcola il modello due volte. Ma normalmente questo non dovrebbe essere un problema di prestazioni.

ggplot(head(airquality, 60), aes(x=Day, y=Temp, color=factor(Month))) + 
    geom_point() + 
    geom_ribbon(stat='smooth', method = "lm", se=TRUE, alpha=0.1, 
       aes(color = NULL, group = factor(Month))) + 
    geom_line(stat='smooth', method = "lm", alpha=0.3) 

resulting plot

+0

grazie, che funziona bene! Presumo che non ci sia un metodo diretto per farlo. NB: penso che il 'se = TRUE' nel geom_ribbon possa essere rimosso? – agenis

+0

@agenis sei a conoscenza di un metodo diretto per questo a partire dal 2017? Sembra controintuitivo passare attraverso la soluzione alternativa – Dan

+0

@Dan puoi pubblicare una nuova risposta? – agenis