Graph 在Stata中绘制复杂的条形图
我试图绘制一个条形图,其中y轴上的每个单独变量都有一个条形图,然后根据类别变量将它们拆分 所以,我要放在x轴上的变量是: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。由于这四个变量都是独立的,但分数相同,因此它们不能成为
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
是获取复合变量的另一种方法。是的,这是一种非常干净的方法。感谢分享技巧。