library(ggplot2)
data <-
data.frame(
group=factor(c("a","c","b","b","c","a")),
x=c("A","B","C", "D","E","F"),
y=c(3,2,10,11,4,5))
> data
group x y
1 a A 3
2 c B 2
3 b C 10
4 b D 11
5 c E 4
6 a F 5
#And plot this:
ggplot(data)+
geom_bar(aes(x=x, y=y, fill=group, order=group),
stat="identity",
position="dodge")+
coord_flip()
这给出了一个数字,其中x是根据因子水平绘制的:
但是如何根据group
变量的自定义顺序重新排序x,同时根据降序group
在y
内排列。例如,如果我想首先绘制&#34; c&#34; (红色),然后&#34; a&#34; (绿色)然后&#34; b&#34; (蓝色)组,x轴(x
变量)的绘图顺序为:E,B,F,A,D,C。注意这可能与this SO问题有相似之处。
答案 0 :(得分:4)
首先需要在没有factor
的情况下格式化数据框。然后,您需要将x列定义为factor
,但顺序取决于每y
的{{1}}最小值。您需要的这种特定顺序需要在group
参数中指定。
我们走了:
levels