如何重新订购条形图

时间:2019-01-29 17:20:47

标签: graph stata

我根据退休状态为不同类型的锻炼生成了条形图。但是,该图按退休状态(退休还是未退休)排序

我想按锻炼类型对图表进行排序,以便针对每种锻炼类型将退休状态分组在一起。

使用Stata玩具auto数据集的示例如下:

sysuse auto, clear
graph bar turn mpg gear_ratio, over(foreign)

enter image description here

在此示例中,我希望针对每个汽车属性将汽车类型分组在一起。

2 个答案:

答案 0 :(得分:1)

reshape命令是一种将数据转换为所需格式的好方法:

sysuse auto, clear

local my_yvars "turn mpg gear_ratio"
local my_cat_var "foreign"

/* Store variable labels to relabel the variables below */

local labels ""
foreach var of varlist `my_yvars' {
    local `var': variable label `var'
    local labels `"`labels' ("`var'" = "``var''")"'
}

collapse (mean) `my_yvars', by(`my_cat_var')
rename (`my_yvars') (y=)
reshape long y, i(`my_cat_var') j(variable) string

strrec variable `labels', replace
graph bar y , over(`my_cat_var') over(variable) asyvars

enter image description here

请注意,strrec社区贡献的命令,可以从SSC安装:

ssc install strrec

答案 1 :(得分:1)

根据@NickCox的建议,也可以使用社区贡献的命令statplot

下面的代码在一行中生成等效图形:

sysuse auto, clear 
statplot gear_ratio mpg turn, over(foreign) vertical asyvars

enter image description here

要使用statplot,请先在Stata的命令提示符下键入以下内容来安装它:

ssc install statplot