1

我正在尝试为 y 轴上的每个单独变量绘制一个条形图,然后根据类别变量将它们拆分。

因此,我要放入 x 轴的变量是:

phys
emo
soc
sch

它们都是从 0 到 100 的分数,它们显示了生活质量,我想在 x 轴上用一个具有两个类别的变量来分割这些分数,要么moderate要么high。我似乎唯一能做的是:

gr bar phys emo soc sch, over(Village) 

它将 x 轴拆分为Villagehighmoderate),然后将其中的每一个拆分为physemosoc、 4 个类别sch。由于这四个变量都是独立的但具有相同的分数,因此它们不能成为 Stata 中的一个类别,因为它将 x 轴标记为 0-100,这不是我想要的。

如果有人能想出一种方法来帮助或将四个变量组合成一个变量,以便我可以使用该over(x)选项,那将非常有帮助!

4

1 回答 1

1

在我看来,您最多有 8 个数据点,在这种情况下,我通常建议在 MS Excel 中做这样的图表。但是,根据您的数据描述,您可以执行以下操作:

foreach i in phys emo soc sch {
rename `i' _`i'
}
reshape long _, i(village) j(state) string
g cat=state+"-"+village
gr bar _, over(cat)

然后使用显示选项使条形标签更小并很好地显示,改变颜色等。

或者

您可以这样做(无需重塑数据):

graph bar  phys emo soc sch, over(village) bargap(-30) ///
legend( label(1 "Physical") label(2 "Emotional") label(3 "Social") label(4 "School") )

顺便说一句,我很奇怪你说 X 轴显示在 0-100 的范围内。如果按照您描述的方式设置数据,则此命令不应该发生这种情况。此外,“变量是分开的,但得分相同”——真的不知道你在这里指的是什么。发布您的数据以获得更好的答案....

这是我使用的假数据,适用于我的代码:

village phys    emo soc sch
high    87  65  79  45
moderate77  64  55  57
于 2013-09-03T23:05:23.927 回答