Saltar al contenido

Cómo agregar diagramas de caja a un diagrama de dispersión con jitter

Alexandra, miembro de este equipo, nos ha hecho el favor de redactar esta reseña porque controla perfectamente dicho tema.

Solución:

Aquí hay una forma de usar gráficos base.

boxplot(NUMS ~ GRP, data = ddf, lwd = 2, ylab = 'NUMS')
stripchart(NUMS ~ GRP, vertical = TRUE, data = ddf, 
    method = "jitter", add = TRUE, pch = 20, col = 'blue')

ingrese la descripción de la imagen aquí

Para hacer esto en ggplot2tratar:

ggplot(ddf, aes(x=GRP, y=NUMS)) + 
  geom_boxplot(outlier.shape=NA) + #avoid plotting outliers twice
  geom_jitter(position=position_jitter(width=.1, height=0))

versión ggplot2 de boxplot + jitter

Obviamente, puede ajustar los argumentos de ancho y alto de position_jitter() a tu gusto (aunque te recomiendo height=0 ya que la fluctuación de altura hará que su gráfico sea inexacto).

He escrito una función R llamada spreadPoints() dentro de un paquete basiclotteR. El paquete se puede instalar directamente en su biblioteca R usando el siguiente código:

install.packages("devtools")
library("devtools")
install_github("JosephCrispell/basicPlotteR")

Para el ejemplo proporcionado, utilicé el siguiente código para generar la figura de ejemplo a continuación.

ddf = data.frame(NUMS = rnorm(500), GRP = sample(LETTERS[1:5],500,replace=T))

boxplot(NUMS ~ GRP, data = ddf, lwd = 2, ylab = 'NUMS')

spreadPointsMultiple(data=ddf, responseColumn="NUMS", categoriesColumn="GRP",
                     col="blue", plotOutliers=TRUE)

ingrese la descripción de la imagen aquí

Es un trabajo en progreso (¡la falta de fórmula como entrada es torpe!) pero proporciona un método no aleatorio para distribuir puntos en el eje X que funciona como un violín como un resumen de los datos. Eche un vistazo al código fuente, si está interesado.

Sección de Reseñas y Valoraciones

No se te olvide dar difusión a este post si te valió la pena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *