boxplot() en R: Cómo hacer BoxParcelas en RStudio [Ejemplos]
diagrama de caja() en R
diagrama de caja() en R Ayuda a visualizar la distribución de los datos por cuartil y a detectar la presencia de valores atípicos. Puedes utilizar el objeto geométrico geom_boxplot() de la biblioteca ggplot2 para dibujar un boxplot() en R.
Utilizaremos el conjunto de datos de calidad del aire para introducir boxplot() en R con ggplot. Este conjunto de datos mide la calidad del aire de Nueva York desde mayo hasta septiembre de 1973. El conjunto de datos contiene 154 observaciones. Utilizaremos las siguientes variables:
- Ozono: Variable numérica
- Viento: Variable numérica
- Mes: mayo a septiembre. variable numérica
Create Box Parcela
Antes de comenzar a crear su primer boxplot() en R, debe manipular los datos de la siguiente manera:
- Paso 1: importar los datos
- Paso 2: elimine las variables innecesarias
- Paso 3: convertir el mes en nivel de factor
- Paso 4: Cree una nueva variable categórica que divida el mes en tres niveles: inicio, mitad y final.
- Paso 5: eliminar las observaciones faltantes
Todos estos pasos se realizan con dplyr y el operador de canalización %>%.
library(dplyr) library(ggplot2) # Step 1 data_air <- airquality % > % #Step 2 select(-c(Solar.R, Temp)) % > % #Step 3 mutate(Month = factor(Month, order = TRUE, labels = c("May", "June", "July", "August", "September")), #Step 4 day_cat = factor(ifelse(Day < 10, "Begin", ifelse(Day < 20, "Middle", "End"))))
Una buena práctica es comprobar la estructura de los datos con la función vislumbrar().
glimpse(data_air)
Salida:
## Observations: 153 ## Variables: 5 ## $ Ozone <int> 41, 36, 12, 18, NA, 28, 23, 19, 8, NA, 7, 16, 11, 14, ... ## $ Wind <dbl> 7.4, 8.0, 12.6, 11.5, 14.3, 14.9, 8.6, 13.8, 20.1, 8.6... ## $ Month <ord> May, May, May, May, May, May, May, May, May, May, May,... ## $ Day <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,... ## $ day_cat <fctr> Begin, Begin, Begin, Begin, Begin, Begin, Begin, Begi...
Hay NA en el conjunto de datos. Es conveniente eliminarlos.
# Step 5 data_air_nona <-data_air %>% na.omit()
Diagrama de caja básico
Dibujemos el boxplot() básico de R con la distribución de ozono por mes.
# Store the graph box_plot <- ggplot(data_air_nona, aes(x = Month, y = Ozone)) # Add the geometric object box plot box_plot + geom_boxplot()
Explicación del código
- Guarde el gráfico para su uso posterior.
- box_plot: almacena el gráfico en la variable box_plot. Es útil para usos posteriores o para evitar líneas de código demasiado complejas.
- Agregue el objeto geométrico de R boxplot()
- Pasa el conjunto de datos data_air_nona a ggplot boxplot.
- Dentro del argumento aes(), agrega el eje x y el eje y.
- El signo + significa que quieres que R siga leyendo el código. Hace que el código sea más legible al dividirlo.
- Utilice geom_boxplot() para crear un diagrama de caja
Salida:
Cambiar de lado del gráfico
Puedes voltear el lado del gráfico.
box_plot + geom_boxplot()+ coord_flip()
Explicación del código
- box_plot: utiliza el gráfico que ha almacenado. Evita tener que reescribir todos los códigos cada vez que agrega nueva información al gráfico.
- geom_boxplot(): Crea diagramas de caja en R
- coord_flip(): Voltear el lado del gráfico
Salida:
Cambiar el color del valor atípico
Puede cambiar el color, la forma y el tamaño de los valores atípicos.
box_plot + geom_boxplot(outlier.colour = "red", outlier.shape = 2, outlier.size = 3) + theme_classic()
Explicación del código
- outlier.color=”red”: controla el color de los valores atípicos
- outlier.shape=2: cambia la forma del valor atípico. 2 se refiere al triángulo
- outlier.size=3: cambia el tamaño del triángulo. El tamaño es proporcional al número.
Salida:
Agregar una estadística resumida
Puede agregar una estadística de resumen al diagrama de caja R().
box_plot + geom_boxplot() + stat_summary(fun.y = mean, geom = "point", size = 3, color = "steelblue") + theme_classic()
Explicación del código
- stat_summary() permite agregar un resumen al diagrama de caja horizontal R
- El argumento fun.y controla las estadísticas devueltas. Usarás la media
- Nota: Hay otras estadísticas disponibles, como mínima y máxima. Se puede exhibir más de una estadística en un mismo gráfico.
- geom = “punto”: Traza el promedio con un punto
- size=3: Tamaño del punto
- color =”steelblue”: Color de los puntos
Salida:
Box Trazar con puntos
En el siguiente diagrama de caja horizontal R, se agregan las capas del diagrama de puntos. Cada punto representa una observación.
box_plot + geom_boxplot() + geom_dotplot(binaxis = 'y', dotsize = 1, stackdir = 'center') + theme_classic()
Explicación del código
- geom_dotplot() permite agregar puntos al ancho del contenedor
- binaxis='y': cambia la posición de los puntos a lo largo del eje y. Por defecto, eje x
- dotsize=1: Tamaño de los puntos
- stackdir=’center’: Forma de apilar los puntos: Cuatro valores:
- “arriba” (predeterminado),
- "abajo"
- "centro"
- “centrotodo”
Salida:
Control Estético de la Box Parcela
Cambiar el color de la caja
Puedes cambiar los colores del grupo.
ggplot(data_air_nona, aes(x = Month, y = Ozone, color = Month)) + geom_boxplot() + theme_classic()
Explicación del código
- Los colores de los grupos se controlan en la asignación aes(). Puede utilizar color= Month para cambiar el color del gráfico de caja y bigotes según los meses.
Salida:
Box trama con múltiples grupos
También es posible agregar varios grupos. Podrás visualizar la diferencia en la calidad del aire según el día de la medida.
ggplot(data_air_nona, aes(Month, Ozone)) + geom_boxplot(aes(fill = day_cat)) + theme_classic()
Explicación del código
- El mapeo aes() del objeto geométrico controla los grupos a mostrar (esta variable tiene que ser un factor)
- aes(fill= day_cat) permite crear tres casillas para cada mes en el eje x
Salida:
Box Trazar con puntos nerviosos
Otra forma de mostrar el punto es con puntos irregulares. Es una forma conveniente de visualizar puntos con un diagrama de caja para datos categóricos en una variable R.
Este método evita la superposición de datos discretos.
box_plot + geom_boxplot() + geom_jitter(shape = 15, color = "steelblue", position = position_jitter(width = 0.21)) + theme_classic()
Explicación del código
- geom_jitter() añade un poco de deterioro a cada punto.
- forma=15 cambia la forma de los puntos. 15 representa los cuadrados
- color = “steelblue”: Cambia el color del punto
- position=position_jitter(width = 0.21): Forma de colocar los puntos superpuestos. position_jitter(width = 0.21) significa que mueves los puntos un 20 por ciento desde el eje x. Por defecto, el 40 por ciento.
Salida:
Puedes ver la diferencia entre el primer gráfico con el método de jitter y el segundo con el método de puntos.
box_plot + geom_boxplot() + geom_point(shape = 5, color = "steelblue") + theme_classic()
Mellado Box Parcela
Una característica interesante de geom_boxplot() es la función de diagrama de caja con muescas de R. El diagrama de caja con muescas estrecha el cuadro alrededor de la mediana. El objetivo principal de un diagrama de caja con muescas es comparar la significancia de la mediana entre grupos. Hay pruebas sólidas de que dos grupos tienen medianas diferentes cuando las muescas no se superponen. Una muesca se calcula de la siguiente manera:
donde es el intercuartil y el número de observaciones.
box_plot + geom_boxplot(notch = TRUE) + theme_classic()
Explicación del código
- geom_boxplot(notch=TRUE): Crea un diagrama de caja horizontal con muescas R
Salida:
Resum
Podemos resumir los diferentes tipos de diagrama de caja horizontal R en la siguiente tabla:
Objetivo | Código |
---|---|
Diagrama de caja básico |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() |
voltear el lado |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + coord_flip() |
Diagrama de caja con muescas |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot(notch=TRUE) |
Box trama con puntos nerviosos |
ggplot(df, aes( x = x1, y =y)) + geom_boxplot() + geom_jitter(position = position_jitter(0.21)) |
También verifique: Tutorial de R para principiantes: aprenda el lenguaje de programación R