manipulation - ggplot2 tutorial español
Cómo crear geom_boxplot con gran cantidad de variables continuas x (2)
Esta es una forma de utilizar los datos originales que publicó en Google, que en realidad fue mucho más útil, IMO.
ggplot(df, aes(x=CH, y=value,group=CH))+
geom_boxplot(notch=FALSE, outlier.shape=NA, fill="red", alpha=0.2)+
scale_x_log10()
Entonces, como @BenBolker dijo antes de borrar su respuesta (??), debe dejar la variable x ( CH
) como numérica, y establecer group=CH
en la llamada a aes(...)
.
Sin embargo, con sus datos reales, hay otro problema. Su CH
está más o menos espaciado logarítmicamente, por lo que hay tantos puntos <1 como hay entre 1 - 10, etc. ggplot
quiere hacer que las cajas sean del mismo tamaño, por lo que con un eje x lineal, el ancho de la caja es más pequeño que el ancho de línea, y no ve los cuadros en absoluto. Cambiar el eje x a una escala logarítmica corrige eso, más o menos.
Tengo un marco de datos que contiene bandejas numéricas del eje xy datos continuos del eje y en múltiples categorías. Inicialmente, creé un diagrama de caja al hacer que los compartimentos del eje x fueran "factores", y al hacer un diagrama de caja de los datos fundidos. Datos reproducibles:
x <- seq(1,10,by=1)
y1 <- rnorm(10, mean=3)
y2 <- rnorm(10, mean=10)
y3<- rnorm(10, mean=1)
y4<- rnorm(10, mean=8)
y5<- rnorm(10, mean=12)
df <- data.frame(x,y1,y2,y3,y4,y5)
df.m <- melt(df, id="x")
Mi código para crear los datos del eje x como un factor:
df.m $ x <- as.factor (df.m $ x)
Mi ggplot:
ggplot(df.m, aes(x=x, y=value))+
geom_boxplot(notch=FALSE, outlier.shape=NA, fill="red", alpha=0.1)+
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
La trama resultante: :
El problema es que no puedo usar el espaciado numérico del eje X porque el eje x se clasifica como un factor, que tiene un espaciado igual. Quiero poder usar algo como scale_x_continuous para manipular los saltos de eje y el espaciado, por ejemplo, un intervalo de 2, en lugar de un diagrama de caja cada 1, pero cuando intento trazar los datos con el eje x "as.numeric ", Acabo de obtener un diagrama de caja de todos los datos:
¿Alguna sugerencia para obtener esta curva de gráfico de caja de aspecto continuo (la primera imagen) sin dejar de controlar las propiedades numéricas del eje x? ¡Gracias!
No hagas de x
un factor. Necesitas mapear estéticamente un group
que es un factor que determina con qué caja está asociado el valor, afortunadamente, después de la fusión, esta es la columna de tu variable
:
ggplot(df.m, aes(x = x, y = value, group = variable)) +
geom_boxplot()
Como x
sigue siendo numérico, puede darle los valores que desee dentro de un nivel de variable
específico y el diagrama de caja aparecerá en ese punto. O podrías transformar el eje x
, etc.