Aggiunta stat_smooth a solo 1 faccetta ggplot2
Domanda
Ho alcuni dati per i quali, a un certo livello di un fattore, non v'è una correlazione significativa. Al altro livello, non c'è nessuno. Plotting questi side-by-side è semplice. Aggiunta di una linea di entrambi con stat_smooth, anche semplice. Tuttavia, non voglio la linea o il suo riempimento visualizzato in una delle due facce. C'è un modo semplice per fare questo? Forse specificando un colore bianco per il riempimento e il colore di una delle linee in qualche modo?
Soluzione
Non pensare a prendere un aspetto, pensare fornendo un sottoinsieme di dati stat_smooth:
ggplot(df, aes(x, y)) +
geom_point() +
geom_smooth(data = subset(df, z =="a")) +
facet_wrap(~ z)
Altri suggerimenti
Naturalmente, poi ho risposto alla mia domanda. Anche se, c'è un modo meno hack-y per fare questo? Mi chiedo se si potrebbe anche andare bene diverse funzioni per diversi pannelli.
Una tecnica è quella di utilizzare + scale_fill_manual e scale_colour_manual. Essi permettono di specificare quali colori verranno utilizzati. Quindi, in questo caso, diciamo che hai
a<-qplot(x, y, facets=~z)+stat_smooth(method="lm", aes(colour=z, fill=z))
È possibile specificare i colori per il riempimento e il colore utilizzando la seguente. Nota, il secondo colore è chiaro, in quanto utilizza un valore esadecimale con gli ultimi due numeri che rappresentano trasparenza. Così, 00 = chiaro.
a+stat_fill_manual(values=c("grey", "#11111100"))+scale_colour_manual(values=c("blue", "#11111100"))