Sono diventato molto affezionato grafici a scatole in cui jittered punti sono overlain sopra i grafici a scatole per rappresentare i dati effettivi, come di seguito:È possibile combinare position_jitter con position_dodge?
set.seed(7)
l1 <- gl(3, 1, length=102, labels=letters[1:3])
l2 <- gl(2, 51, length=102, labels=LETTERS[1:2]) # Will use this later
y <- runif(102)
d <- data.frame(l1, l2, y)
ggplot(d, aes(x=l1, y=y)) +
geom_point(position=position_jitter(width=0.2), alpha=0.5) +
geom_boxplot(fill=NA)
(Questi sono particolarmente utili quando ci sono molto diversi numeri di punti dati in ciascuna casella.)
Mi piacerebbe utilizzare questa tecnica quando sto anche (implicitamente) utilizzando position_dodge
per separare i grafici a scatole da una seconda variabile, ad es.
ggplot(d, aes(x=l1, y=y, colour=l2)) +
geom_point(position=position_jitter(width=0.2), alpha=0.5) +
geom_boxplot(fill=NA)
Tuttavia, non si può capire come schivare i punti dal colour
variabile (qui, l2
) e li tremare.
avete già ricevuto alcune risposte belle, quindi questo commento è più di un piccolo sfondo. Quando ho faticato un problema simile da qualche tempo, sono inciampato in [questa presentazione] (http://dl.dropbox.com/u/42707925/ggplot2/ggplot2slides.pdf). Controlla l'esempio a pag. 19-20. La combinazione di 'geom_jitter' e' dodge' apparentemente funzionava in una versione precedente di 'ggplot'. Non più ... – Henrik
Mi piace molto anche mostrare i punti reali insieme ai miei boxplot, ma tendo ad usare i dot plot. Evitano il problema di nervosismo e possono dare un buon senso della forma dei dati in ogni gruppo. In questo caso, comunque, devi ancora elaborare il 'dodge' appropriato in' geom_dotplot'. – aosmith