Considera el conjunto de datos ToothGrowth
y transforma la columna dose
en un factor.
# Conjunto de datos de muestra
df <- ToothGrowth
df$dose <- as.factor(df$dose)
stat_summary
Para añadir la media a un gráfico de violín tendrás que usar la función stat_summary
y especificar la función a ser calculada, el geom a ser usado y los argumentos del geom.
Media como un punto
En caso de que quieras mostrar la media con puntos puedes pasar la función mean
y establecer "point"
como geom. Recuerda que puedes personalizar otros argumentos como shape
(forma) y size
(tamaño).
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = dose, y = len)) +
geom_violin() +
stat_summary(fun = "mean",
geom = "point",
color = "red")
Media como una linea
Si prefieres una línea horizontal establece geom = "crossbar"
. En este escenario puedes especificar el color, el ancho o el tipo de línea.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = dose, y = len)) +
geom_violin() +
stat_summary(fun = "mean",
geom = "crossbar",
width = 0.5,
colour = "red")
Media como crossbar
También puedes agregar intervalos de confianza a la media. Para ello tienes que pasar una función (a fun.data
) que calcule los intervalos de confianza para la media, como mean_cl_boot
para un bootstrap no paramétrico. Escribe ?mean_cl_boot
para obtener información sobre más funciones relacionadas.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = dose, y = len)) +
geom_violin() +
stat_summary(fun.data = "mean_cl_boot", geom = "crossbar",
colour = "red", width = 0.2)
Media con barras de error
La desviación típica también se puede mostrar con barras de error (point range) en lugar de con un crossbow.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = dose, y = len)) +
geom_violin() +
stat_summary(fun.data = "mean_cl_boot", geom = "pointrange",
colour = "red")
Media y mediana
Si agregas otra capa con stat_summary
pero con la mediana puedes tener ambas métricas. Puedes establecer el geom que quieras como en la sección anterior.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = dose, y = len)) +
geom_violin() +
stat_summary(fun = "mean",
geom = "point",
color = "red") +
stat_summary(fun = "median",
geom = "point",
color = "blue")
Media y mediana (con leyenda)
Ten en cuenta que estableciendo un aes
se creará una leyenda. Esta leyenda se puede personalizar, por ejemplo, con scale_color_manual
.
# install.packages("ggplot2")
library(ggplot2)
ggplot(df, aes(x = dose, y = len)) +
geom_violin() +
stat_summary(fun = "mean",
geom = "point",
aes(color = "Mean")) +
stat_summary(fun = "median",
geom = "point",
aes(color = "Median")) +
scale_colour_manual(values = c("red", "blue"), # Colores
name = "") # Eliminar el título de la leyenda
También te puede interesar