I grafici di dispersione possono essere difficili da interpretare quando molti punti si sovrappongono, poiché tale sovrapposizione oscura la densità dei dati in una particolare regione. Una soluzione consiste nell'utilizzare colori semitrasparenti per i punti tracciati, in modo che la regione opaca indichi che molte osservazioni sono presenti in quelle coordinate.Grafico a dispersione R: il colore simbolo rappresenta il numero di punti sovrapposti
Di seguito è riportato un esempio della mia soluzione in bianco e nero in R:
MyGray <- rgb(t(col2rgb("black")), alpha=50, maxColorValue=255)
x1 <- rnorm(n=1E3, sd=2)
x2 <- x1*1.2 + rnorm(n=1E3, sd=2)
dev.new(width=3.5, height=5)
par(mfrow=c(2,1), mar=c(2.5,2.5,0.5,0.5), ps=10, cex=1.15)
plot(x1, x2, ylab="", xlab="", pch=20, col=MyGray)
plot(x1, x2, ylab="", xlab="", pch=20, col="black")
Tuttavia, di recente mi sono imbattuto in this article in PNAS, che ha preso un un approccio simile, ma abituato al calore mappa colorazione in contrasto con l'opacità come indicatore di quanti punti si sovrapponevano. L'articolo è Open Access, quindi chiunque può scaricare il file .pdf e guardare la Figura 1, che contiene un esempio pertinente del grafico che voglio creare. La sezione dei metodi di questo documento indica che le analisi sono state fatte in Matlab.
Per motivi di convenienza, ecco una piccola porzione di figura 1 dal suddetto articolo:
Come faccio a creare un grafico a dispersione in R che ha usato il colore, non è l'opacità, come indicatore della densità del punto?
Per gli utenti iniziali, gli utenti R possono accedere a questa combinazione di colori Matlab nella libreria install.packages("fields")
, utilizzando la funzione tim.colors()
.
Esiste un modo semplice per ottenere una figura simile alla Figura 1 del precedente articolo, ma in R? Grazie!
+10 Potrei votare ancora più in alto se potessi. –
Questo sembra essere esattamente la risposta che speravo ... grazie! – rbatt
@JoshOBrien: è fantastico! Due domande: 1) Come sei riuscito ad aggiungere l'immagine qui nella tua risposta? 2) Come aggiungere una legenda qui? – Shambho