Stata图表如何实现按数值而非字母顺序排序
Stata分类图表按数值降序排序实现方法
核心原理
Stata默认分类变量(如国家名)会按值或标签的字母顺序排列,要实现按对应数值指标排序,需要在绘图前调整分类变量的取值顺序,或直接在绘图命令中指定排序规则,已导出的.gph格式图表无法直接修改排序,需基于原始数据集重新生成图表。
实现方案
方案1:绘图命令直接指定排序(操作最简单,适用于graph bar/graph hbar等内置图表命令)
如果你用的是横向/纵向条形图,直接在分类变量的over()参数中补充排序规则即可,示例命令:
* 假设分类变量为country,收入指标变量为local_revenue graph hbar (mean) local_revenue, over(country, sort(local_revenue) descending) title("各国地方收入对比")
参数说明:
sort(local_revenue)指定按收入变量排序,也可以写sort(1)表示按第一个统计变量排序descending指定为降序,收入最高的国家会排在图表顶部,符合你预期的加拿大排首位的需求
方案2:预先生成排序后的分类变量(通用性更强,适用于所有图表类型)
如果用的是不支持内置排序的绘图命令,可以提前生成按收入排序的新分类变量:
* 按地方收入降序生成新的国家分类变量,变量标签保留原有国家名 egen country_sorted = group(-local_revenue), label * 绘图时直接用新变量作为分类轴变量 graph hbar (mean) local_revenue, over(country_sorted) title("各国地方收入对比")
注意事项
- 排序前建议先排除收入变量的缺失值,避免含缺失值的国家被异常排在末尾
- 如果需要保存新图表,重新运行绘图命令后导出即可,无需修改原数据集的其他内容
内容的提问来源于stack exchange,提问作者Jonah Davids
相关产品推荐
相关产品推荐

