Fre*_*red 24 r ggplot2 boxplot r-factor
从这个其他的这一个问题,一个.我无法在那里实施答案.
限定:
df2 <- data.frame(variable=rep(c("vnu.shr","vph.shr"),each=10),
value=seq(1:20))
Run Code Online (Sandbox Code Playgroud)
情节:
require(ggplot2)
qplot(variable,value, data=df2,geom="boxplot")+
geom_jitter(position=position_jitter(w=0.1,h=0.1))
Run Code Online (Sandbox Code Playgroud)
我想以相反的顺序制作箱形图(例如左侧的一个,依此类推).
我曾尝试使用重新排序的因素的各种方式levels,ordered,relevel,rev等等,但我似乎根本无法得到正确的语法.
jor*_*ran 48
你试过这个:
df2$variable <- factor(df2$variable,
levels = c('vph.shr','vnu.shr'),ordered = TRUE)
Run Code Online (Sandbox Code Playgroud)
我刚刚选择了一个订购,因为我的系统配置与我怀疑的略有不同,所以我的"默认订购"可能会有所不同.但是,您可以在指定级别时切换级别的位置.
其他一些选择,取决于您的口味:
只需反转当前的排序:
factor(df2$variable,levels = rev(levels(df2$variable)),ordered = TRUE)
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想手动输入每个级别,则可以使用子集来指定特定顺序:
factor(df2$variable,levels = levels(df2$variable)[1:2],ordered = TRUE)
Run Code Online (Sandbox Code Playgroud)
你已经接受了一个(完全没问题的)解决方案,但这是另一种选择relevel().我不确定为什么它不适合你?
#default plot
ggplot(df2, aes(variable, value)) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)

#Reverse reverse!
df2$variable2 <- with(df2, relevel(variable, "vph.shr"))
ggplot(df2, aes(variable2, value)) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)
