【问题标题】:Ordering of bars in ggplotggplot中的条形排序
【发布时间】:2011-08-23 11:32:12
【问题描述】:

我浏览了这个论坛的答案,但似乎找不到这个特定问题的答案。我有以下数据并想创建一个条形图,其中条形按“值”从大到小排列,而不是按字母顺序排列:

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('')

我已经尝试了许多我在 StackOverflow 上看到的不同的重新排序和转换,但我似乎找不到一个有效的。我相信这很简单,但我会很感激任何帮助!

谢谢,

格雷格

【问题讨论】:

    标签: r ggplot2 bar-chart


    【解决方案1】:

    你想要函数reorder():

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

    这给出了:

    如果你想要它们反过来,一个简单的方法就是在Value 上使用order() reorder() 调用:

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

    【讨论】:

    • 或者在对reorder的调用中使用-Value来反转方向。
    • @Richie - 当然(打脸!) - 显然没有直接考虑这个arvo!
    • 谢谢@Gavin 和@Richie!完美的!感谢您的帮助。
    • 我也使用 1/Value 以相反的方向重新排序。有效! :-)
    猜你喜欢
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 2013-02-12
    • 2019-03-10
    • 1970-01-01
    相关资源
    最近更新 更多