首页 > 解决方案 > 显示两个变量类别比例的简单条形图

问题描述

在 Stata 中,我有两个变量,一个是询问是否打算在某个日期接种疫苗,并带有是/否/不确定作为回答选项,然后是第二个变量,几个月后向相同的参与者询问相同的问题。我想创建一个条形图,其中每个变量都有一个垂直条,并且选择每个响应的人的比例相互堆叠。

标签: stata

解决方案


在没有数据示例或任何代码尝试的情况下,这里是对您可能会发现有用的一些技术的猜测。

使用两个变量graph bar(或catplot(SSC)或tabplotStata Journal))将很容易给出一个用于两个分类变量交叉分类的条形图。

您似乎要求并排进行两个边际分布。

最简单的方法可能是生成两个单独的条形图,然后应用graph combine.

更多的工作,但在许多方面更好的方法是临时重组数据以允许应用over()by()本文详细解释了这种方法。这是任何人都可以运行的示例代码(请注意,它clear是任何现有数据)。

/// toy dataset 
clear 
set obs 100 
set seed 2803
gen var1 = cond(_n <= 20, 1, cond(_n <= 30, 2, 3))
gen var2 = cond(_n <= 10, 1, cond(_n <= 20, 2, 3))

preserve 

/// use your own variable names
stack var1 var2, into(var) clear  
label def _stack 1 before 2 after 
label val _stack _stack 
label def var 1 no 2 "not sure" 3 yes 
label val var var 
set scheme s1color 
graph bar (percent), by(_stack, note("")) over(var) ytitle(percent) yla(, ang(h))
graph bar (percent), by(var, note("") row(1)) over(_stack) ytitle(percent) yla(, ang(h))

restore 

我认为不,不确定,是的自然顺序。


推荐阅读