13 votos

Boxplot con respecto a dos factores que utilizan ggplot2 en R

Soy muy nuevo en R y en cualquier paquete de R. Miré la documentación de ggplot2 pero no pude encontrar esto. Quiero un gráfico de caja de variables boxthis con respecto a dos factores f1 y f2 . Se supone que ambos f1 y f2 son variables factoriales y cada una de ellas toma dos valores y boxthis es una variable continua. Quiero obtener 4 boxplots en un gráfico, cada uno correspondiente a una combinación de las posibles combinaciones que f1 y f2 puede tomar. Creo que usando la funcionalidad básica en R, esto puede hacerse

> boxplot(boxthis ~ f1 * f2 , data = datasetname) 

Gracias de antemano por cualquier ayuda.

0 votos

Por favor, proporcione datos de muestra, para poder obtener respuestas precisas.

2 votos

Esta pregunta encajaría mejor en stackoverflow.com, ya que aquí no hay nada específicamente estadístico.

23voto

Brett Veenstra Puntos 10238

Se me ocurren dos formas de conseguirlo:

1. Cree todas las combinaciones de f1 y f2 fuera del ggplot -función

library(ggplot2)

df <- data.frame(f1=factor(rbinom(100, 1, 0.45), label=c("m","w")), 
                 f2=factor(rbinom(100, 1, 0.45), label=c("young","old")),
                 boxthis=rnorm(100))

df$f1f2 <- interaction(df$f1, df$f2)

ggplot(aes(y = boxthis, x = f1f2), data = df) + geom_boxplot()

enter image description here

2. utilizar color/relleno/etc.

ggplot(aes(y = boxthis, x = f2, fill = f1), data = df) + geom_boxplot()

enter image description here

4 votos

(+1) Me gusta el uso de interaction() . Cabe destacar que podemos especificar geom_boxplot(position = position_dodge(width = .9)) para añadir un espacio extra entre los boxplots.

1 votos

También puede utilizar dodge argumento en ggplot función - ggplot(aes(y = boxthis, x = f2, fill = f1, dodge=f1), data = df) + geom_boxplot()

0voto

Joudy Puntos 6

Esta es otra forma:

ggplot(datasetname) + boxplot(aes(x=as.factor(f1),y=boxthis)) + facet_wrap(~as.factor(f2), nrow=5)

Da algo como lo siguiente:

Faceted box plot

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X