online - Unirse significa en un diagrama de caja con una línea(ggplot2)
diagrama de caja y bigotes para datos agrupados (1)
Tengo un diagrama de caja que muestra múltiples cuadros. Quiero conectar la media de cada cuadro junto con una línea. El diagrama de caja no muestra la media por defecto, en cambio la línea media solo indica la mediana. Lo intenté
ggplot(data, aes(x=xData, y=yData, group=g))
+ geom_boxplot()
+ stat_summary(fun.y=mean, geom="line")
Esto no funciona.
Curiosamente, haciendo
stat_summary(fun.y=mean, geom="point")
dibuja el punto mediano en cada cuadro. ¿Por qué la "línea" no funcionaría?
Algo así, pero usando ggplot2, http://www.aliquote.org/articles/tech/RMB/c4_sols/plot45.png
¿Es esto lo que estás buscando?
library(ggplot2)
x <- factor(rep(1:10, 100))
y <- rnorm(1000)
df <- data.frame(x=x, y=y)
ggplot(df, aes(x=x, y=y)) +
geom_boxplot() +
stat_summary(fun.y=mean, geom="line", aes(group=1)) +
stat_summary(fun.y=mean, geom="point")
Actualizar:
Algunas aclaraciones sobre la configuración del grupo = 1: creo que encontré una explicación en el libro de Hadley Wickham " ggplot2: Gráficos elegantes para el análisis de datos ". En la página 51, escribe:
Diferentes grupos en diferentes capas.
A veces queremos trazar resúmenes basados en diferentes niveles de agregación. Las diferentes capas pueden tener una estética de grupo diferente, de modo que algunas muestran datos de nivel individual, mientras que otras muestran resúmenes de grupos más grandes.
Sobre la base del ejemplo anterior, supongamos que queremos agregar una sola línea suave a la trama recién creada, en función de las edades y alturas de todos los niños. Si usamos la misma agrupación para la suavidad que usamos para la línea, obtenemos la primera gráfica en la Figura 4.4.
p + geom_smooth (aes (grupo = Sujeto), method = "lm", se = F)
Esto no es lo que queríamos; Inadvertidamente hemos agregado una línea suavizada para cada niño. Esta nueva capa necesita una estética de grupo diferente, grupo = 1, de modo que la nueva línea se basará en todos los datos, como se muestra en el segundo gráfico de la figura. La capa modificada se ve así:
p + geom_smooth (aes (grupo = 1), método = "lm", tamaño = 2, se = F)
[...] Usar aes (grupo = 1) en la capa lisa se ajusta a una sola línea de mejor ajuste en todos los niños ".