¿Es posible eliminar niveles que no se usan en las facetas de ggplot2s? Este es mi código:
tab = as.data.frame(cbind(groups = mtcars$cyl, names = row.names(mtcars), val = mtcars$mpg, N = mtcars$disp))
tab$N = as.numeric(tab$N)
ggplot(tab, aes(names,val)) +
geom_point() + coord_flip() +
theme_bw() +
facet_grid(groups ~ ., drop=TRUE)#, scales="free", as.table=F, space="free")
Intenté el drop=T
cambio pero no ayuda. ¿Qué estoy haciendo mal?
r
data-visualization
ggplot2
mrrrau
fuente
fuente
Respuestas:
Sus datos de ejemplo simplemente no tienen ningún nivel no utilizado para eliminar. Verifique el comportamiento en este ejemplo:
Puede ser que esté buscando cambiar qué factores están trazando en el eje vertical en cada faceta, en cuyo caso desea establecer el
scales
argumento y usarfacet_wrap
:fuente
dotchart(as.numeric(tab$val), labels=tab$names, groups=tab$groups)
. ¿Es posible?drop
elimina cualquier nivel de factor que no se usó en ninguna faceta de la trama, mientras quescales
elimina cualquier nivel de factor que no se utilizó en una faceta particular de la trama. Esto me llevó un tiempo entender de esta publicación, así que pensé en aclarar aquí para salvar a alguien más del problema.