2011-12-14 11 views
5

En un ggplot boxplot, es fácil utilizar la inestabilidad para agregar los puntos de datos sin procesar con diversos grados de fluctuación de fase. Con cero jitter el siguiente códigopuede uno compensar puntos de fluctuación en el diagrama de caja ggplot

dat <- data.frame(group=c('a', 'b', 'c'), values = runif(90)) 

ggplot(dat, aes(group, values)) + 
geom_boxplot(outlier.size = 0) + 
geom_jitter(position=position_jitter(width=0), aes(colour=group), alpha=0.7) + 
ylim(0, 1) + stat_summary(fun.y=mean, shape=3, col='red', geom='point') + 
opts(legend.position = "right") + ylab("values") + xlab("group") 

produce el siguiente diagrama.

¿Es posible usar jitter nulo pero agregue un desplazamiento tal que los puntos estén en una línea pero desplazados a la izquierda en un 25% del ancho de la caja? Intenté geom_point con dodge pero esto generó un jitter. enter image description here

Respuesta

7

Si convertimos el grupo a numérico y luego agregamos un desplazamiento, usted parece obtener el resultado deseado. Es probable que haya una manera más eficaz/eficiente, pero dar a este un torbellino:

ggplot(dat, aes(group, values)) + 
    geom_boxplot(outlier.size = 0) + 
    geom_point(aes(x = as.numeric(group) + .25, colour=group), alpha=0.7) + 
    ylim(0, 1) + stat_summary(fun.y=mean, shape=3, col='red', geom='point') + 
    opts(legend.position = "right") + ylab("values") + xlab("group") 

enter image description here

+0

les desplaza a la derecha, pero, obviamente, puede mover los dejaron así restando 0,25 o cualquier número que da la mirada que buscas – Chase

+0

Muy bien. ¡Gracias! – user441706

Cuestiones relacionadas