ggplot中的酒吧sorting

我已经看了这个论坛的答案,但似乎无法find这个具体问题的答案。 我有以下数据,并且希望创build一个条形图,其中条形图按“值”从大到小sorting,而不是按字母顺序排列:

breadth_data <- read.table(textConnection("Stakeholder Value 'Grantseekers' 0.90 'Donors' 0.89 'Community' 0.55 'Hurricane Relief Fund' 0.24 'Media' 0.19 'Employment Seekers' 0.12 'Affiliates' 0.10 'Youth' 0.09 'Women' 0.02 'Former Board Members' 0.01"), header=TRUE) 

那么基本的条形图:

 c <- ggplot(breadth_data, aes(x=Stakeholder, y=Value)) c + geom_bar(stat="identity") + coord_flip() + scale_y_continuous('') + scale_x_discrete('') 

我已经尝试了很多不同的重sorting和转换,我看到了StackOverflow,但我似乎无法find一个工程。 我相信这是相当简单的,但我将不胜感激任何帮助!

谢谢,

格雷格

你想要函数reorder()

 breadth_data <- transform(breadth_data, Stakeholder = reorder(Stakeholder, Value)) 

这使:

重新排序的barplot

如果你想要他们,一个简单的方法就是在reorder()调用中使用Value order()

 breadth_data <- transform(breadth_data, Stakeholder = reorder(Stakeholder, order(Value, decreasing = TRUE)))