Cómo hacer un diagrama de caja agrupado con puntos de datos fluctuantes en ggplot2 en R

En este artículo, veremos cómo utilizar el paquete ggplot2 en el lenguaje de programación R para trazar diagramas de caja agrupados con puntos de datos fluctuantes.

Los diagramas de caja agrupados nos ayudan a visualizar dos o más características/variables en un solo diagrama usando la variable de agrupación en ggplot2. Los puntos fluctuantes son puntos de datos que pertenecen a otra variable y se representan en la parte superior del diagrama de caja agrupado para una mejor comparación de la dispersión de los puntos de datos de las variables consideradas. 

Creación de un marco de datos

Aquí podemos usar cualquier conjunto de datos incorporado en R (la lista de conjuntos de datos se puede ver usando el comando data()) o incluso crear uno. Vamos a crear un marco de datos y visualizarlo.

R

# Creating a data frame
  
# variables for columns
game = rep(c('Footsal', 'Slamdunk', 'VolleyBall'), each=50)
level = rep(c('low', 'high'), each=25)
score = runif(150, min=1, max=500)
year = rep(c(1992,1993,1994),each=50)
  
data = data.frame(game, level, score,year)
head(data)

Salida :

Trazado de diagramas de caja agrupados

Aquí vamos a trazar diagramas de caja usando los métodos geom_boxplot().

Sintaxis de geom_boxplot(): geom_boxplot(mapping = NULL, data = NULL, outlier.shape = 19, na.rm = FALSE … )

Argumentos:

  • mapeo: Conjunto de mapeos estéticos
  • datos: datos que se mostrarán en esta capa
  • outlier.shape: muestra los valores atípicos, NA: oculta los valores atípicos
  • na.rm: tratar con valores faltantes, VERDADERO: elimina cualquier valor faltante en los datos

Trazar un diagrama de caja agrupado usando el marco de datos creado

Usando ggplot2, tracemos un diagrama de caja agrupado usando el marco de datos creado. Visualicemos un diagrama de caja entre la puntuación y el juego, llenado por nivel. Aquí podemos comparar cada nivel con respecto a los juegos.

R

# plotting a grouped boxplot
library(ggplot2)
  
ggplot(data, aes(x = game, y = score, fill = level)) + 
geom_boxplot()

Salida :

Trazar otro diagrama de caja usando el marco de datos creado

Visualicemos otro diagrama de caja entre el juego y la puntuación, llenado por nivel. Esta es la misma trama que la anterior pero con un eje cambiado que brinda una comparación clara entre cada juego con respecto a los niveles.

R

# another grouped boxplot
  
ggplot(data, aes(x = level, y = score, fill = game)) + 
geom_boxplot()

Salida :

Adición de puntos de datos fluctuantes al diagrama de caja agrupado

Aquí estamos agregando puntos de datos de fluctuación en el diagrama de caja agrupado usando el método geom_point().

Sintaxis de geom_point(): geom_point(mapping = NULL, data = NULL, position = “identity”, … )

Argumentos:

  • mapeo – Conjunto de mapeos estéticos
  • datos = conjunto de datos
  • position – Ajuste de posición de los puntos

Adición de puntos de datos fluctuantes mediante la función geom_point() y el argumento position_jitterdodge()

Agreguemos puntos de datos fluctuantes en el gráfico de caja para visualizar la distribución de los datos con respecto a cada juego.

R

# Adding jittered data points on the boxplot
  
ggplot(data, aes(x = game, y = score, fill = level)) + 
geom_boxplot(outlier.shape = NA)+
geom_point(position = position_jitterdodge(), alpha=0.3)

Salida :

Trazado de un diagrama de caja agrupado con puntos fluctuantes con respecto al rendimiento en cada juego en cada año

Agreguemos puntos de datos fluctuantes en el gráfico de caja usando las funciones geom_point( ) y facet_wrap( ) para comparar el desempeño de las puntuaciones en cada juego por año en diferentes facetas.

R

# jittered points on boxplots in 3 facets by year
  
ggplot(data, aes(x = level, y = score, fill = game)) + 
geom_boxplot()+
geom_jitter(width = 0.1,alpha = 0.3) +
facet_wrap(~year)

Salida :

Publicación traducida automáticamente

Artículo escrito por saaiswethasret y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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