多くの変数にわたって2つのグループ(男性/女性など)を比較するグラフをたくさん作成します。標準的なグラフバー出力は、男性用のすべてのバーと、女性用のすべてのバーをまとめたものです。私は目標変数(すなわち、変数がグラフ化されている)でバーをグループ化し、次に性別などの変数を使って棒グラフを作成する簡単な方法を見つけることを望んでいます。グラフ変数をターゲット変数でソートした後にソート変数をソートする
私はこれを行う方法がありますが、それはかなり面倒です。以下の図を参照してください。
*Set seed + obs
clear
set seed 442
set obs 100
*Generate two outcomes
gen x1 = uniform()
gen x2 = uniform()
*Generate crossing variable
gen gender = 0 in 1/50
replace gender = 1 in 51/100
label define gender_lab 0 "Male" 1 "Female"
label values gender gender_lab
*Extract means by gender
gen b_male = .
gen b_female = .
sum x1 if gender == 0
replace b_male = r(mean) in 1
sum x1 if gender == 1
replace b_female = r(mean) in 1
sum x2 if gender == 0
replace b_male = r(mean) in 2
sum x2 if gender == 1
replace b_female = r(mean) in 2
*Establish order of graph
gen index_male = _n*3 in 1/2
gen index_female = (_n*3) + 1 in 1/2
*This is what -graph bar- produces naturally
graph bar x1 x2, over(gender)
*This is closer to what I want
twoway bar b_male index_male || bar b_female index_female, xlabel(3.5 "x1" 6.5 "x2", notick labgap(4)) xmlabel(3 "Male" 4 "Female" 6 "Male" 7 "Female") legend(off)
graph bar
を使用していますが、まだ私が欲しいのソート順を確立するための簡単な方法はありますか?私は一日に何十枚ものグラフを作成するので、できるだけ不必要なステップを避けたい。
私はかつて-statplot-のことを聞いていたが、それについて忘れてしまいました。私はそれを思い出して、私の問題を解決する完璧なイラストをつけてうれしいです。ありがとう! – Amberopolis
私はそれも時々忘れて、私はその2番目の著者です。 –