Est-il possible de supprimer des niveaux qui ne sont pas utilisés dans les facettes ggplot2s? Voici mon code:
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")
J'ai essayé le drop=T
commutateur mais cela n'aide pas. Qu'est-ce que je fais mal?
r
data-visualization
ggplot2
mrrrau
la source
la source
Réponses:
Vos données d'exemple n'ont tout simplement aucun niveau inutilisé à supprimer. Vérifiez le comportement dans cet exemple:
Il se peut que vous cherchiez à changer les facteurs qui tracent sur l'axe vertical dans chaque facette, auquel cas vous souhaitez définir l'
scales
argument et utiliserfacet_wrap
:la source
dotchart(as.numeric(tab$val), labels=tab$names, groups=tab$groups)
. C'est possible?drop
supprime tous les niveaux de facteur qui n'ont pas été utilisés dans aucune facette de l'intrigue, tandis quescales
supprime tout niveau de facteur qui n'a pas été utilisé dans une facette particulière de l'intrigue. Cela m'a pris du temps pour comprendre ce post, alors j'ai pensé clarifier ici pour éviter à quelqu'un d'autre le problème.