Gráfico de percentil de caja vertical con Lattice y panel.bpplot

Estoy dibujando diagramas de percentil de caja en R, usando la función de panel de percentil de caja de Hmisc (panel.bpplot) con bwplot desde lattice.

Tengo un vector numérico (Length), y me gustaría mostrar su distribución a través de los niveles de una variable factorial (Month).

Aquí hay un ejemplo con datos falsos:

Por ejemplo,

set.seed(13)
Length<-sample(1:10, 1000, replace=TRUE)
Month<-sample(c("Apr","May","Jul","Aug","Sep","Nov"), 1000, replace=TRUE)

df<-cbind(Month, Length)
df<-as.data.frame(df)   
df$Month<-factor(df$Month, levels=c("Apr","May","Jul","Aug","Sep","Nov"))
df$Length<-as.numeric(df$Length)

#plot horizontal box-percentile plot; 
bwplot(Month~Length, data=df, panel=panel.bpplot)

Esto funciona bien. Pero quiero que las tramas sean vertical, con Month en el eje xy Length en el eje y. La documentación para panel.bpplot dice que las gráficas horizontales hacen que los niveles de categoría sean más visibles, pero, para mis propósitos, necesito específicamente una gráfica vertical. ¿Hay alguna forma de modificar panel.bpplot ¿para hacer esto?

preguntado el 08 de noviembre de 11 a las 16:11

Has probado el argumento horizontal? Ver bwplot docs. Los valores pueden ser NULL, TRUE or FALSE. -

Intenté jugar con el argumento horizontal. Establecerlo en FALSE hace que bwplot trate mi variable numérica como un factor y mi variable de factor como numérica, que no es el efecto deseado (aunque crea cuadros verticales). Además, este es solo el caso cuando se llama a la función de panel normal en bwplot. Cuando panel = panel.bpplot, la configuración de horizontal = FALSE parece no tener ningún efecto en el gráfico. -

1 Respuestas

Tomé algunos consejos de esto Pregunta anterior y luego lo fusionó con su código. Parece que el "truco" es configurar una cuadrícula rotada:

require(grid)
grid.newpage()
pushViewport(viewport(angle = 90, name = "VP"))
print(
    bwplot(Month~Length, data=df, panel=panel.bpplot, draw.in = "VP"
    ),
    newpage=FALSE
)

lo que resulta en:

enter image description here

contestado el 23 de mayo de 17 a las 15:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.