如何使用ggplot/geom_bar订购休息时间

Jon*_*ore 3 r ggplot2

我有一个data.frame,其条目如下:

   variable  importance order
1       foo  0.06977263     1
2       bar  0.05532474     2
3       baz  0.03589902     3
4     alpha  0.03552195     4
5      beta  0.03489081     5
       ...

在使用breaks =变量绘制上述内容时,我希望保留顺序,而不是按字母顺序排列.

我正在渲染:

 
ggplot (data, aes(x=variable, weight=importance, fill=variable)) + 
    geom_bar() + 
    coord_flip() + opts(legend.position='none')

但是,变量名的顺序是按字母顺序排列的,而不是数据框中的顺序.我看过一篇关于在aes中使用"order"的帖子,但似乎没有任何效果.

我希望有一个与"订单"列一致的休息订单.

似乎有一个类似的问题如何在ggplot中改变离散x尺度的顺序,但坦率地说,在这种情况下没有理解答案.

Bra*_*sen 6

尝试:

data$variable <- factor(data$variable, levels=levels(data$variable)[order(-data$order)])
Run Code Online (Sandbox Code Playgroud)

来自:ggplot2排序情节第二部分