Stata中如何让条形图图例与条形排序自动匹配?
Stata分组条形图:匹配条形排序与图例顺序(保留标签)
针对你遇到的条形排序和图例顺序不匹配的问题,有两种无需手动重编码标签的自动解决方法:
方法1:利用levelsof自动生成图例顺序
先提取按change均值排序后的sector取值,再将其传入图例的order()参数,让图例顺序和条形排序完全对应:
* 计算每个sector的change均值(graph bar默认绘制均值) bysort sector: egen mean_change = mean(change) * 按均值升序排序数据 sort mean_change sector * 获取排序后的sector取值列表,存入本地宏 levelsof sector, local(sorted_sectors) * 绘图时调用本地宏设置图例顺序 graph bar change, over(sector, sort(1)) asyvars legend(order(`sorted_sectors'))
方法2:生成带原标签的排序分组变量
用egen group()函数生成按change均值排序的新变量,自动保留原sector的数值标签,无需手动调整:
* 计算每个sector的change均值 bysort sector: egen mean_change = mean(change) * 按均值排序生成带标签的新分组变量 egen sector_sorted = group(sector), label by(mean_change) * 直接用新变量绘图,条形和图例顺序自动匹配 graph bar change, over(sector_sorted) asyvars
补充说明
你之前生成替代变量时丢失标签,是因为没有保留原变量的标签属性。egen group(..., label)会自动继承原变量的数值标签,同时by()参数指定了分组的排序依据,完美解决排序和标签保留的问题。
内容的提问来源于stack exchange,提问作者Nameless
相关产品推荐
相关产品推荐

