控制ggplot2 geom_bar的填充顺序和组

时间:2015-03-23 11:16:00

标签: r ggplot2 geom-bar

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是根据因子水平绘制的: enter image description here

但是如何根据group变量的自定义顺序重新排序x,同时根据降序groupy内排列。例如,如果我想首先绘制&#34; c&#34; (红色),然后&#34; a&#34; (绿色)然后&#34; b&#34; (蓝色)组,x轴(x变量)的绘图顺序为:E,B,F,A,D,C。注意这可能与this SO问题有相似之处。

1 个答案:

答案 0 :(得分:4)

首先需要在没有factor的情况下格式化数据框。然后,您需要将x列定义为factor,但顺序取决于每y的{​​{1}}最小值。您需要的这种特定顺序需要在group参数中指定。

我们走了:

levels

enter image description here