Box plot en ggplot2 con geom_boxplot

Si tienes un data frame que contiene una variable numérica puedes usar geom_boxplot para crear un box plot (diagrama de cajas) en ggplot2, pasando la variable a aes.

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(3)
y <- rnorm(500)
df <- data.frame(y)

# Basic box plot
ggplot(df, aes(y = y)) + 
  geom_boxplot()

Diagrama de cajas en ggplot2

Alternativamente puedes establecer x = "". Esto eliminará los valores del eje X y hará la caja más estrecha.

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(3)
y <- rnorm(500)
df <- data.frame(y)

# Basic box plot
ggplot(df, aes(x = "", y = y)) + 
  geom_boxplot()

Box plot de una variable en ggplot2

Agregando barras de error con stat_boxplot

El diagrama de caja y bigotes de ggplot2 no añade las líneas horizontales de las barras de error, pero puedes agregarlas con stat_boxplot, estableciendo geom = "errorbar". Ten en cuenta que puedes cambiar su ancho con width.

Box plot con barras de error en ggplot2

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(3)
y <- rnorm(500)
df <- data.frame(y)

# Basic box plot
ggplot(df, aes(y = y)) + 
  stat_boxplot(geom = "errorbar",
               width = 0.15) + 
  geom_boxplot()

Diagrama de cajas horizontal

Existen dos maneras de cambiar la orientación de un box plot en ggplot2: cambiando la variable en aes o usando coord_flip, tal y como se muestra en los siguientes ejemplos.

Opción 1: cambiando el argumento.

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(3)
y <- rnorm(500)
df <- data.frame(y)

# Box plot horizontal
ggplot(df, aes(x = y)) + 
  stat_boxplot(geom = "errorbar",
               width = 0.15) + 
  geom_boxplot()

Box plot horizontal en ggplot2 con geom_boxplot

Opción 2: usando coord_flip.

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(3)
y <- rnorm(500)
df <- data.frame(y)

# Box plot horizontal
ggplot(df, aes(y = y)) + 
  stat_boxplot(geom = "errorbar",
               width = 0.15) + 
  geom_boxplot() +
  coord_flip()

Box plot coord_flip

Personalización del box plot

Los box plots hechos con ggplot se pueden personalizar haciendo uso de los argumentos de las funciones stat_boxplot y geom_boxplot. En los ejemplos siguientes cambiamos los colores y los tipos de líneas de los gráficos, resaltando los argumentos correspondientes.

Personalizar colores de un box plot en ggplot

Personalización de colores

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(3)
y <- rnorm(500)
df <- data.frame(y)

# Box plot customization
ggplot(df, aes(y = y)) + 
  stat_boxplot(geom = "errorbar",
               width = 0.15,
               color = 1) +  # Color barras error
  geom_boxplot(fill = 2,           # Color caja
               alpha = 0.5,        # Transparencia
               color = 1,          # Color del borde
               outlier.colour = 2) # Color atípicos

Personalización de los tipos de líneas del box plot con geom_boxplot

Tipos de líneas

# install.packages("ggplot2")
library(ggplot2)

# Datos
set.seed(3)
y <- rnorm(500)
df <- data.frame(y)

# Basic box plot
ggplot(df, aes(y = y)) + 
  stat_boxplot(geom = "errorbar",
               width = 0.15,
               linetype = 2, # Tipo de línea
               lwd = 0.5) +  # Ancho de línea
  geom_boxplot(linetype = 2, # Tipo de línea
               lwd = 0.5)    # Ancho de línea

También te puede interesar