Así que quiero agregar el mínimo, 25.pc, mediana, 75. pc y max a un diagrama de caja en ggplot con una variable. A modo de ejemplo, describiré el problema con el conjunto de datos mtcars. Vi otro hilo con una pregunta similar: anotar el diagrama de caja en ggplot2 e intenté replicar la respuesta del usuario eipi10. Pero el proceso falló con una sola variable. De alguna manera, la función cuantil da otra salida. Muestra el valor de cada punto de datos en la variable en el gráfico.

library(ggplot2)
ggplot(mtcars, aes(x = mpg)  +
  geom_boxplot(width = 0.6) +
  stat_summary(geom = "text", fun = quantile,
               aes(label = ..x.., y = 0.1), size = 3.5)

Incluso si cambio el argumento probs de la función de cuantiles y se lo doy a la función stat_summary (), muestra resultados extraños.

1
Fabi_Nutri 22 ene. 2021 a las 14:38

1 respuesta

La mejor respuesta

El problema es que los cuantiles se calculan para y en lugar de la variable que se asigna en x. La razón es que stat_summary adivina qué variable usar para calcular los cuantiles, pero falla en su caso ya que tanto x como y=0.5 son numéricos (vea la sección Orientación en ?stat_summary). Para evitarlo, debe decirle a stat_summary qué variable o eje usar para los cálculos de los cuantiles estableciendo el argumento de orientación. O puede agregar una variable categórica auxiliar mapeando, por ejemplo, "1" en y. En ese caso, stat_summary elegirá de forma predeterminada la variable numérica (es decir, la asignada en x) para calcular los cuantiles.

library(ggplot2)

ggplot(mtcars, aes(x = mpg, y = "1"))  +
         geom_boxplot(width = 0.6) +
         stat_summary(geom = "text", fun = quantile,
                      aes(label = ..x.., y = 1.5), size = 3.5)

ggplot(mtcars, aes(x = mpg))  +
  geom_boxplot(width = 0.6) +
  stat_summary(geom = "text", fun = quantile,
               aes(label = ..x.., y = 0.5), size = 3.5, orientation = "y")

0
stefan 22 ene. 2021 a las 22:15