Plot 具有多变量信息的Stata图

Plot 具有多变量信息的Stata图,plot,stata,Plot,Stata,我有10个二进制变量-var1,var2,…,var10回答某个问题的“是”或“否”(1或0),但条件不同。我想在stata中创建一个条形图,显示每个变量回答“否”的人数比例(单个图)。我该怎么做?如果我对频率使用常规条形图命令 graph bar, over(varlist) 我得到一个错误,因为over()只接受一个变量,而不是varlist。这样的事情在R或Python中很容易做到,但我不确定如何在stata中做到这一点。我的数据如下所示: +------------------

我有10个二进制变量-var1,var2,…,var10回答某个问题的“是”或“否”(1或0),但条件不同。我想在stata中创建一个条形图,显示每个变量回答“否”的人数比例(单个图)。我该怎么做?如果我对频率使用常规条形图命令

graph bar, over(varlist) 
我得到一个错误,因为
over()
只接受一个变量,而不是varlist。这样的事情在R或Python中很容易做到,但我不确定如何在stata中做到这一点。我的数据如下所示:

   +-------------------------------+
   | id    var1   var2   var3      |
   |-------------------------------|    
1. |  1    0       0         1     |
2. |  2    1       1         1     |
3. |  3    0       1         1     |
   +-------------------------------+

如上所述,每个人用“是”或“否”回答了3个问题(相反,相同的问题以三种不同的方式提出)。我想生成一个带有三个条形图(“var1”、“var2”、“var3”)的条形图,每个条形图表示对问题回答“否”的人数比例(在示例数据中分别为0.67、0.33和0)。

这里没有可复制的数据示例。Stata tag wiki提供了关于如何给出数据示例的非常详细的建议

在我写这篇文章的时候,直接绘制零的分数并不会产生任何明显的技巧,但这里有一个解决方法。10个变量的原理与这里发明的4个变量的原理没有什么不同。主要思想是,
图形hbar
(或
图形栏
图形点
)的默认值是显示平均值,二进制变量的平均值是一个比例

clear 
set seed 2803
set obs 10 
forval j = 1/4 { 
    generate var`j' = runiform() > (`j' * 0.2) 
}

forval j = 1/4 { 
    generate nvar`j' = 1 - var`j'
    label var nvar`j' "var`j'"
}

graph hbar nvar* , ascategory ytitle(fraction of Nos) name(G1, replace)

statplot nvar*, ytitle(fraction of Nos) name(G2, replace)
statplot
解决方案(取决于使用
ssc install statplot
安装该命令)只是一种替代方案。个人认为,与默认的
图形hbar
相比,它的直接结果更接近文明的图形。但这在原则上并没有什么不同,通过直接为
graph hbar
列出更多选项,您可以更进一步


使用
graph hbar
而不是
graph bar
是个人的选择。但是,如果您的真实数据有变量标签或更长的名称,那么为10个变量显示可读的空间可能是中等规模的交易。

哦,对不起,这是我第一次发布有关stata的帖子。我需要给出什么样的数据示例?理解,但正如Stata tag wiki所解释的那样。我不会写下已经详细解释过的内容。现在可以了吗?是的,从这个意义上讲,您已经给出了示例数据。不,从某种意义上说,任何人都必须在它成为Stata数据之前对其进行编辑。本质上,命令
dataex
的存在是为了提供数据示例(最坏的情况下,您需要使用
ssc install dataex
安装它)。我会尽力取悦大家,说我没有投反对票,但投反对票的人都有理由。如果没有可复制的示例,这不是一个好问题。