此问题来自其他one。我无法在那里实施答案。
定义:
df2 <- data.frame(variable=rep(c("vnu.shr","vph.shr"),each=10),
value=seq(1:20))
简介:
require(ggplot2)
qplot(variable,value, data=df2,geom="boxplot")+
geom_jitter(position=position_jitter(w=0.1,h=0.1))
我想以相反的顺序设置箱形图(例如左侧的一个,依此类推)。
我尝试了使用levels
,ordered
,relevel
,rev
等重新排序这些因素的各种方法,但我似乎无法使语法正确
答案 0 :(得分:43)
你试过这个:
df2$variable <- factor(df2$variable,
levels = c('vph.shr','vnu.shr'),ordered = TRUE)
我刚刚选择了一个订购,因为我的系统配置与我怀疑的略有不同,所以我的'默认订购'可能会有所不同。但是,您可以在指定级别时切换级别的位置。
其他一些选择取决于您的口味:
仅反转当前的排序:
factor(df2$variable,levels = rev(levels(df2$variable)),ordered = TRUE)
或者,如果您不想手动输入每个级别,则可以使用子集来指定特定顺序:
factor(df2$variable,levels = levels(df2$variable)[1:2],ordered = TRUE)
答案 1 :(得分:7)
您已经接受了(完全正常的)解决方案,但这是使用relevel()
的另一个选项。我不确定为什么它不适合你?
#default plot
ggplot(df2, aes(variable, value)) + geom_boxplot()
#Reverse reverse!
df2$variable2 <- with(df2, relevel(variable, "vph.shr"))
ggplot(df2, aes(variable2, value)) + geom_boxplot()