[Stata][グラフ][combine]Stataで複数のグラフを1枚にまとめる方法

aerial shot of green milling tractor stata
Photo by Tom Fisk on Pexels.com

graph combine

Stataで複数のグラフを\(1\)枚にまとめたいときには、graph combineを用いる。

簡単な使い方

例がないとわかりにくいので、いつものauto.dtaを用いる。

sysuse auto, clear

普通にグラフを作成した後、それになまえをつけて格納する。

twoway scatter(price mpg), name(graph1)
graph 1.
hist weight, name(graph2)
graph 2.

これをまとめるには、以下のコマンドを入力すれば良い。

graph combine graph1 graph2

様々なオプション

“colfirst”オプションでグラフを順に縦に並べられる。

“xcommon”あるいは”ycommon”で共通の\(x\)あるいは\(y\)軸を用いることができる。

“imargin()”で余白の指定。

“title”でタイトル指定。ただし、”xtitle”や”ytitle”は使えないので、これは個別のグラフで指定しておくと良い。個々のグラフでたくさん軸ラベルが出て煩わしいときは、

hist weight, xtitle("") ytitle("") name(graph2)

などとしておくと良い。

“holes”で用いないスペースの指定ができる。”hol”と省略もできる。例えば、グラフが\(3\)つあって、\(4\)個のコマ割りのどこを用いないかを指定できる。グラフの割り方は、\begin{array}{|c|*2{c|}}\hline 1 & 2 \\ \hline 3 & 4 \\ \hline \end{array}のようになっている。以下にコードと例を示す。

graph box length, name(graph3)
graph combine graph1 graph2 graph3 hol(3)
\(3\)の位置が空白になっている。

背景の色を変更したいとき

ここが結構ハマった。個々のグラフではもちろん背景色が設定できるが、combineを用いると背景色がStataのいつもの空色になってしまう。これを回避するには、

graph combine graph1 graph2 graph3, grapheregion(color(white))

とすると良く、以下のように背景色が白のグラフが生成される。

全体の背景色は白になる。

上の例では個々のグラフの背景色の指定がされておらず、デフォルトの空色のままなのでやや分かりにくいが。

メモリーを確認したいとき

graph dir

とするとメモリーにどのグラフを格納しているか確認できる。

メモリーを消去するとき

graph drop _all

とする。個々のグラフを消去したいときは、

graph drop graph1 graph2 ...

と指定すると良い。

出力するときは

graph export "/Users/path/graph.png", replace width(4000)

でよい。”width”を指定しないと意外に解像度の低い画像が出力される。

グラフレジェンドを一つにまとめたいとき

この場合、graph combineではうまく行かず、grc1legを用いる。

net install grc1leg,from( http://www.stata.com/users/vwiggins/)

使い方はgraph combineとほとんど同じで、

grc1leg name1 name2 name3 ycommon xcommon legendfrom(name2)

として、”legendfrom”で用いたグラフのレジェンドを指定すれば良い。

関連記事

marginsplotの調整方法

コメント

タイトルとURLをコピーしました