Stataのグラフマニュアル
Stataで書いたグラフとそのスクリプトを公開します。
どれか一つグラフをクリックするとスライドショーになりますので、
描きたいグラフを探してください。
画像の下に出てくる番号を覚えて、本文中でその番号を探してください。
グラフのリクエストがあれば連絡ください。時間があれば作ってみます。
1. Waist-to-height ratioのカーネル密度関数を調査年ごとに表記
twoway (kdensity whtr if wave==1993) (kdensity whtr if wave==1997) (kdensity whtr if wave==2000) (kdensity whtr if wave==2004) (kdensity whtr if wave==2006) (kdensity whtr if wave==2009) (kdensity whtr if wave==2011), legend(order(1 “1993” 2 “1997” 3 “2000” 4 “2004” 5 “2006” 6 “2009” 7 “2011”) col(4)) xtitle(“WHtR(×100)”, height(5)) ylabel(, angle(0))
- whtr: waist-to-height ratio
- wave:調査年
<スクリプト>
- twoway
複数のグラフを一つのグラフとして描写する。
Graphics > Twoway graph (scatter, line, etc.) - kdensity
カーネル密度関数を表記する。 - if wave == 1993
調査年が1993年であればという条件 - legend(order(1 “1993” 2 “1997”)…)
凡例を変える必要があればここで定義。 - col(4)
columnの略で列のこと。
凡例の一行目が4列で表記される。 - xtitle
x軸の軸ラベル
heightはx軸が表記される箇所の高さ。
ytitleならばy軸の軸ラベルとなる。 - ylabel(, angle(0))
, angle(0)の()内の数字を変えると文字の向きを変えられる。
何も書かないとY軸に平行の向きになる。
x軸に平行にしたいのならば(0)もしくはhorizontalにする。
2. WHtRとUrbanization Indexの関係をSESのグループごとに描写する
twoway (lfit whtr2006 index if rel_income==1, scheme(s2mono) xscale(r(20 120)) yscale(r(45 52)))(lfit whtr2006 index if rel_income==2)(lfit whtr2006 index if rel_income==3), xlabel (#5) ylabel(#7, angle(0)) legend(pos(1) ring(0) order(1 “Low SES” 2 “Middle SES” 3 “High SES”)) xtitle(“Urbanization Index”) ytitle(“Waist-to-height ratio (WHtR)”)
- whtr2006:2006年のWaist-to-height ratio
- index:都市化指標
- rel_income:SESのグループ。データは1,2,3という形式。
<スクリプト>
- twoway
複数のグラフを一つのグラフとして描写する。
Graphics > Twoway graph (scatter, line, etc.) - lfit y軸 x軸
linear fitの意味。y軸とx軸のデータを用いて線形回帰する。 - if rel_income == 1
もしrel_incomeが1であればという条件式。 - scheme(s2mono)
図のデザインを決める。様々なパターンがある。
http://www.stata.com/manuals13/g-4schemesintro.pdf#g-4schemesintro - xscale(r(20 120))
x軸の範囲を20から120にする。 - yscale(r(45 52))
y軸の範囲を45から52にする。 - xlabel(#5)
x軸を5分割する - ylabel(#7, angle(0))
#7でy軸を7分割し、angle(0)で文字の方向をx軸と平行にする。 - legend
凡例に関する指定。 - pos(1)
凡例の場所を指定。1なら1時の方向というように時計の方向になっている。 - ring(0)
ring(0)でグラフの枠内に表記することを指定。 - order(1 “Low” 2 “Middle”…)
凡例の順番と凡例の内容を指定。 - xtitle
x軸の名前を指定。(“name”)で指定する。 - ytitle
y軸の名前を指定。
3. HeightとWHtRの散布図をグループごとに描写する
scatter whtr height, ml(out) ms(i) note(“0 = nonoutlier, 1 = outlier”)
- whtr:Waist-to-height ratio
- height:身長
- out:外れ値。hadimvoを用いて指定したもの。
<スクリプト>
- scatter
散布図を書く。 - ml()
グループの変数名を入れる - ms(i)
msybolの略。変数がそのまま表示される。 - note()
メモを書けるので、レジェンドを自由に記載することが可能。
4. WHtRの箱ひげ図を性別ごとに層化したうえで、年齢と測定年ごとに描写する
graph hbox whtr if wave == 1993 | wave == 2011, over(wave) over(age3, label) by(gender, note(“”)) outergap(100) boxgap(10) asyvars ytitle(“Waist-to-height ratio”, height(10)) marker(1,msize(vsmall) msymbol(S)) marker(2, msize(vsmall) msymbol(S)) xsize(15) ysize(10)
- whtr:Waist-to-height ratio
- wave:測定年
- age3:年齢の階層
- gender:性別
<スクリプト>
- graph hbox
箱ひげ図を書く。graph boxは普通のタテの箱ひげ図。hboxだとヨコになる。 - if wave == 1993 | wave == 2011
1993年と2011年のデータに絞った。 - over()
カッコ内の引数について層化して箱ひげ図を書くという指令。 - over(age3, label)
こうすることでage3という変数のラベルを使って表示できる。 - by(gender, note(“”))
性別ごとに二つのパネルを作成。note(“”)を付けることでグラフ下にキャプションが出るのを消せる。 - boxgap()
箱ひげ間の距離。 - asyvars
これを付けることで一つ目のover()の中の引数がグラフレジェンドになる。
http://www.stata.com/manuals13/g-2graphbar.pdf - marker(1,msize(vsmall) msymbol(S))
箱ひげ図の1993年を1で指定している。msizeは外れ値のサイズ、msymbolは外れ値の形(Sは四角square)をそれぞれ指定。1を2にしたものが2011年の箱ひげ図をしているすコマンド。