4 votos

Creando una gráfica con diagramas de caja clasificados por cuantiles en R

Estoy tratando de crear una gráfica en R que me proporcione diagramas de caja (y / o distribuciones) de una columna clasificada por cuantiles (y / o grupos espaciados por igual) de otra columna en un marco de datos.

Un ejemplo sería la siguiente trama:

introduzca la descripción de la imagen aquí

¿Alguien puede darme referencias para paquetes o sitios donde se explica la creación?

4voto

DavLink Puntos 101

Aquí hay una posible solución con base R gráficos:

n <- 1000
x <- runif(n, 0, 100)
y <- 1.1*x + rnorm(n)
library(Hmisc)
xq <- cut2(x, g=10, levels.mean=TRUE)
ym <- tapply(y, xq, mean)
# display the mean for each decile
plot(as.numeric(levels(xq)), ym, pch="x", xlab="x", ylab="y")
# add the boxplots
boxplot(y ~ xq, add=TRUE, at=as.numeric(levels(xq)), axes=FALSE)
abline(v=cut2(x, g=10, onlycuts=TRUE))

Si los datos son los datos.marco, sólo tiene que añadir un data= argumento al llamar boxplot(). Usted puede jugar con la boxwex argumento para aumentar diagramas de caja anchos. Si prefiere quedarse en el valor predeterminado cut() función, usted probablemente puede analizar los valores de la derecha de la deciles como en el código siguiente (seguro que hay un modo más limpio para hacer eso!!!):

xq <- cut(x, quantile(x, seq(0, 1, by=.1)))
vx <- gsub("\\(", "", unlist(strsplit(levels(xq), ","))[seq(1, 18, by=2)])

enter image description here

Un simple ggplot solución podría tener este aspecto:

xy <- data.frame(x=x, y=y)
ggplot(xy, aes(x, y, group=xq)) + geom_boxplot() + xlim(0, 100)

No sé de ningún paquete para "decil parcelas", pero me gustaría recomendar a la bpplt() y panel.bpplot() de la Hmisc paquete. E. g., intente esto

library(lattice)
bwplot(xq ~ y, panel=panel.bpplot, probs=.25, datadensity=TRUE)

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: