Gre*_*ton 47 r bar-chart ggplot2
我已经在这个论坛中查看了答案,但似乎无法找到这个具体问题的答案.我有以下数据,并希望创建一个条形图,其中条形按"值"从大到小排序,而不是按字母顺序排列:
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)
Run Code Online (Sandbox Code Playgroud)
然后是基本条形图:
c <- ggplot(breadth_data, aes(x=Stakeholder, y=Value))
c + geom_bar(stat="identity") + coord_flip() + scale_y_continuous('') + scale_x_discrete('')
Run Code Online (Sandbox Code Playgroud)
我已经尝试过在StackOverflow上看到的许多不同的重新排序和转换,但我似乎无法找到一个有效的.我相信这很简单,但我将不胜感激!
谢谢,
格雷格
Rei*_*son 70
你想要的功能reorder():
breadth_data <- transform(breadth_data,
Stakeholder = reorder(Stakeholder, Value))
Run Code Online (Sandbox Code Playgroud)
这使:

如果你希望他们反过来想,一个简单的方法就是使用order()在Value内部reorder()调用:
breadth_data <- transform(breadth_data,
Stakeholder = reorder(Stakeholder,
order(Value, decreasing = TRUE)))
Run Code Online (Sandbox Code Playgroud)