geom_jitter
Agregar observaciones con ruido aleatorio (un stripchart) a un gráfico de cajas en ggplot2 es muy útil para mostrar la distribución subyacente de los datos. Para ello tendrás que usar geom_jitter
.
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(8)
y <- rnorm(200)
df <- data.frame(y)
# Box plot
ggplot(df, aes(x = "", y = y)) +
geom_boxplot() +
geom_jitter()
Una buena práctica es eliminar los atípicos con outlier.shape = NA
, ya que con geom_jitter
también se mostrarán.
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(8)
y <- rnorm(200)
df <- data.frame(y)
# Box plot
ggplot(df, aes(x = "", y = y)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter()
Recuerda que puedes rotar los ejes con coord_flip
o intercambiando las variables dentro de aes
.
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(8)
y <- rnorm(200)
df <- data.frame(y)
# Box plot
ggplot(df, aes(x = "", y = y)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter() +
coord_flip()
Las observaciones con ruido aleatorio se pueden personalizar de varias maneras. Puedes cambiar la cantidad de ruido con width
, el color de los puntos, su forma o su tamaño, como se muestra en los siguientes ejemplos.
Ancho
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(8)
y <- rnorm(200)
df <- data.frame(y)
# Box plot
ggplot(df, aes(x = "", y = y)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(width = 0.2)
Color
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(8)
y <- rnorm(200)
df <- data.frame(y)
# Box plot
ggplot(df, aes(x = "", y = y)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(colour = 2)
Forma y tamaño
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(8)
y <- rnorm(200)
df <- data.frame(y)
# Box plot
ggplot(df, aes(x = "", y = y)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(shape = 17, size = 2)
Si tienes una variable categórica que represente grupos puedes crear un gráfico de cajas por grupo y añadir las observaciones a cada grupo y personalizar su color, tamaño y forma.
Observaciones por grupo
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(8)
y <- rnorm(200)
grupo <- sample(LETTERS[1:3], size = 200,
replace = TRUE)
df <- data.frame(y, grupo)
# Box plot por grupo con observaciones
ggplot(df, aes(x = grupo, y = y)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter()
Color de los puntos
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(8)
y <- rnorm(200)
grupo <- sample(LETTERS[1:3], size = 200,
replace = TRUE)
df <- data.frame(y, grupo)
# Box plot por grupo con observaciones
ggplot(df, aes(x = grupo, y = y)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter(colour = 2)
Color de los puntos por grupo
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(8)
y <- rnorm(200)
grupo <- sample(LETTERS[1:3], size = 200,
replace = TRUE)
df <- data.frame(y, grupo)
# Box plot por grupo con observaciones
ggplot(df, aes(x = grupo, y = y, colour = grupo)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter()
Forma por grupo
# install.packages("ggplot2")
library(ggplot2)
# Datos
set.seed(8)
y <- rnorm(200)
grupo <- sample(LETTERS[1:3],
size = 200,
replace = TRUE)
df <- data.frame(y, grupo)
# Box plot por grupo con observaciones
ggplot(df, aes(x = grupo, y = y,
colour = grupo,
shape = grupo)) +
geom_boxplot(outlier.shape = NA) +
geom_jitter()
También te puede interesar