tutorial manipulation ggplot español change r ggplot2 boxplot

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.