Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph 在Stata中绘制复杂的条形图_Graph_Stata - Fatal编程技术网

Graph 在Stata中绘制复杂的条形图

Graph 在Stata中绘制复杂的条形图,graph,stata,Graph,Stata,我试图绘制一个条形图,其中y轴上的每个单独变量都有一个条形图,然后根据类别变量将它们拆分 所以,我要放在x轴上的变量是: phys emo soc sch 它们都是从0到100的分数,表示生活质量,我想在x轴上用一个变量将它们分为两类,要么是中等,要么是高。我唯一能做的似乎是: gr bar phys emo soc sch, over(Village) 它将x轴分为村庄(高或中等),然后将每个x轴分为4类物理,emo,soc,sch。由于这四个变量都是独立的,但分数相同,因此它们不能成为

我试图绘制一个条形图,其中y轴上的每个单独变量都有一个条形图,然后根据类别变量将它们拆分

所以,我要放在x轴上的变量是:

phys
emo
soc
sch
它们都是从0到100的分数,表示生活质量,我想在x轴上用一个变量将它们分为两类,要么是
中等
,要么是
。我唯一能做的似乎是:

gr bar phys emo soc sch, over(Village) 
它将x轴分为
村庄
(高或
中等
),然后将每个x轴分为4类
物理
emo
soc
sch
。由于这四个变量都是独立的,但分数相同,因此它们不能成为Stata中的一个类别,因为它将x轴标记为0-100,这不是我想要的


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

在我看来,您最多有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)
然后使用显示选项使条形标签变小&显示得很好,改变周围的颜色,等等

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

顺便说一句,你说X轴以0-100的比例出现,我觉得很奇怪。如果数据按照您描述的方式设置,则此命令不应出现这种情况。还有“变量是分开的,但分数相同”——我真的不知道你在这里指的是什么。张贴您的数据以获得更好的答案

以下是我使用的假数据,与我的代码一起使用:

village phys    emo soc sch
high    87  65  79  45
moderate77  64  55  57

在我看来,您最多有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)
然后使用显示选项使条形标签变小&显示得很好,改变周围的颜色,等等

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

顺便说一句,你说X轴以0-100的比例出现,我觉得很奇怪。如果数据按照您描述的方式设置,则此命令不应出现这种情况。还有“变量是分开的,但分数相同”——我真的不知道你在这里指的是什么。张贴您的数据以获得更好的答案

以下是我使用的假数据,与我的代码一起使用:

village phys    emo soc sch
high    87  65  79  45
moderate77  64  55  57

样本数据可以让人们玩这个游戏。请提供样本数据。@Exodia:你发现下面的答案有用吗?还是你仍然被卡住了?样本数据可以让人们玩这个游戏。请提供样本数据。@Exodia:你发现下面的答案有用吗?还是你仍然被卡住了?这是否是OP想要的还不清楚(你是第三个要求提供样本数据的人),但这是有建设性的。
egen cat=group(state village),label
是获取复合变量的另一种方法。是的,这是一种非常干净的方法。感谢分享技巧。这是否是OP想要的还不清楚(你是第三个要求提供样本数据的人),但这是有建设性的。
egen cat=group(state village),label
是获取复合变量的另一种方法。是的,这是一种非常干净的方法。感谢分享技巧。