如何在ggplot2的geom_col条形图中按参与次数重新排序?
解决ggplot2条形图按参与次数排序的问题
你只需要在aes()里用reorder()函数重新指定Country的排序规则就行,具体用法如下:
升序排列(参与次数从低到高):
把Country替换成reorder(Country, Participations)——第一个参数是要排序的离散变量(国家),第二个是用来排序的数值变量(参与次数)。plt <- ggplot(data) + geom_col(aes(Participations, reorder(Country, Participations)), fill = "blue", width = 0.6)降序排列(参与次数从高到低,更符合条形图的常规展示逻辑):
在参与次数变量前加负号,实现反向排序:plt <- ggplot(data) + geom_col(aes(Participations, reorder(Country, -Participations)), fill = "blue", width = 0.6)
另外注意:你代码里的BLUE需要加引号变成"blue",否则会因未定义变量报错(除非你提前单独定义了这个颜色变量)。
内容的提问来源于stack exchange,提问作者Floyd
相关产品推荐
相关产品推荐

