调整Y轴值的条形图

maa425

我有下面的Stata代码,生成下面的图。但是,我试图对Y轴上的值进行调整/排序,这是指不同收入组中的工人,以遵循与数据集相同的顺序。而不是将当前月收入<= 1.5千美元的人员排列为第5个而不是第一个收入组的当前订单。

number_of_workers   income_bracket
24806                <= 1.5
31346                 1.5-2.9
648409                   3
389266                3.01-4.9
351963                  5-9.9
271360                  >= 10

收入方括号变量是字符串,我尝试将其转换为以下内容:

gen income_bracket_numeric = real(income_bracket)

但是,Stata将转换后的值视为缺少(。),但3是数字。有没有一种方法可以通过在不更改原始数据的情况下将收入范围设置为数字来处理?

preserve
keep if nationality=="nationals"
keep if period=="Q1_2020" | period=="Q4_2020" 
graph hbar (mean)  number_of_workers, over(income_bracket) over(quarter)
restore

在此处输入图片说明

我采纳了尼克的建议,我的代码如下所示:

input number_of_workers_q1 str8 income_bracket_q1
24806 "<= 1.5"
31346 "1.5-2.9"
648409 "3"
389266 "3.01-4.9"
351963 "5-9.9"
271360 ">= 10"
end 


input number_of_workers_q4 str8 income_bracket_q4
25073 "<= 1.5"
29628 "1.5-2.9"
596767 "3"
442429 "3.01-4.9"
381794 "5-9.9"
273880 ">= 10"
end 

gen order = _n 
labmask order, values(income_bracket_q1)
graph hbar (asis) number_of_workers_q1 number_of_workers_q4, over(order)

label define order 1 "{&le} 1.5" 6 "{&ge} 10", modify 
graph hbar (asis) number_of_workers_q1 number_of_workers_q4, over(order)

除了Y轴如下图以外,该图效果很好: 在此处输入图片说明

尼克·考克斯

请注意,您的问题是有关调整分类轴的。使用graph bargraph hbar并且graph dot大小轴始终视为y轴,无论它是垂直还是水平。这样做是为了您可以在水平和垂直方向之间更改方向,而不必更改所有y选项和所有x选项。

下面是一个使用到做这件事labmaskStata的杂志

clear 
input number_of_workers str8 income_bracket
24806 "<= 1.5"
31346 "1.5-2.9"
648409 "3"
389266 "3.01-4.9"
351963 "5-9.9"
271360 ">= 10"
end 

gen order = _n 
labmask order, values(income_bracket)
graph hbar (asis) number_of_workers, over(order)

label define order 1 "{&le} 1.5" 6 "{&ge} 10", modify 
graph hbar (asis) number_of_workers, over(order)

labmask如果您没有按正确的顺序定义值标签,然后使用,就可以做到这一点encode

如上所述,您可以改进粗双符号<=>=

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章