-
阿波罗的战车
尝试手动设置x轴上的因子级别。例如:library(ggplot2)# Automatic levelsggplot(mtcars, aes(factor(cyl))) + geom_bar()# Manual levelscyl_table <- table(mtcars$cyl)cyl_levels <- names(cyl_table)[order(cyl_table)]mtcars$cyl2
<- factor(mtcars$cyl, levels = cyl_levels)# Just to be clear, the above line is no different than:# mtcars$cyl2
<- factor(mtcars$cyl, levels = c("6","4","8"))# You can manually set the levels in whatever order you please. ggplot(mtcars, aes(cyl2)) +
geom_bar()正如詹姆斯在他的回答中指出的,reorder是调整因子水平的惯用方法。mtcars$cyl3 <- with(mtcars, reorder(cyl, cyl, function(x) -length(x)))ggplot(mtcars, aes(cyl3)) + geom_bar()
-
守着一只汪
对我来说最好的方法是使用向量和类别,按照我需要的顺序limits参数scale_x_discrete..我认为这是非常简单和直接的解决方案。ggplot(mtcars, aes(factor(cyl))) +
geom_bar() +
scale_x_discrete(limits=c(8,4,6))
-
墨色风雨
你可以用reorder:qplot(reorder(factor(cyl),factor(cyl),length),data=mtcars,geom="bar")编辑:要想在左边有最高的酒吧,你必须使用一些杂念:qplot(reorder(factor(cyl),factor(cyl),function(x) length(x)*-1),
data=mtcars,geom="bar")我希望这也有负面的高度,但它没有,所以它的工作!