Domanda

Sono nel mio modo di finire i grafici per un giornale e ha deciso ( dopo una discussione sulla stats.stackoverflow stimate-ses-or-reale-ses -anova-plot-), al fine di trasmettere quante più informazioni possibile, per creare il seguente grafico che sia presente in primo piano i mezzi e sullo sfondo i dati grezzi: alt text

Tuttavia, uno resta il problema e che è overplotting. Ad esempio, gli sguardi punto contrassegnato come riflette un punto di dati, ma in realtà 5 punti dati esiste con lo stesso valore in quel luogo.
Per questo, mi piacerebbe sapere se c'è un modo per trattare con overplotting in base graph utilizzando points come la funzione.
Sarebbe ideale se ad esempio, i rispettivi punti diventano più scuri, o più spesso o, ...

farlo manualmente non è un'opzione (troppi grafici e punti come questo). Inoltre, ggplot2 inoltre, non è quello che voglio imparare a trattare con questo singolo problema (uno dei motivi è che io tendo a come dual-assi ciò che non è in supprted ggplot2).


Aggiornamento: Ho scritto una funzione che crea automaticamente i grafici ed evita sopra overplotting con l'aggiunta di jitter verticale o orizzontale (o entrambi): check it out!

Questa funzione è ora disponibile come raw.means.plot e raw.means.plot2 nel plotrix package (su CRAN).

È stato utile?

Soluzione

approccio standard è quello di aggiungere un po 'di rumore ai dati prima della stampa. R ha una funzione jitter () che fa proprio questo. Si potrebbe utilizzare per aggiungere il rumore necessario per le coordinate nel vostro diagramma. ad esempio:

X <- rep(1:10,10)
Z <- as.factor(sample(letters[1:10],100,replace=T))

plot(jitter(as.numeric(Z),factor=0.2),X,xaxt="n")
axis(1,at=1:10,labels=levels(Z))

Altri suggerimenti

Oltre jittering, un altro buon approccio è l'alpha blending, che è possibile ottenere (sui dispositivi grafici supporing it) come il parametro quarto colore. Ho fornito un esempio per 'overplotting' di due istogrammi in questa domanda SO .

Un'idea addizionale per il problema generale di mostrare il numero di punti sta usando una trama tappeto (funzione tappeto), questi posti piccoli segni di graduazione lungo il margine che può mostrare quanti punti contribuiscono (usano ancora oscillazioni o alpha blending per cravatte ). In questo modo i punti effettivi per mostrare i loro veri valori, piuttosto che jittered, ma il tappeto può quindi indicare quali parti della trama hanno più valori.

Per il jitter diretta esempio trama o alpha blending è probabilmente la cosa migliore, ma in alcuni altri casi la trama tappeto può essere utile.

Si può anche utilizzare sunflowerplot , mentre sarebbe difficile per la sua attuazione qui. Vorrei usare alpha-blending, come suggerito Dirk.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top