[Stata][flowchart]Stataでのflowchartの描写方法

white dry erase board with red diagram stata
Photo by Christina Morillo on Pexels.com

FLOWCHART

flowchartというStataのmoduleは、Stata内でtexdocを使用し、PGF/Tikパッケージを用いることでLatexで高品質のフローダイアグラムを作成することができる。

GitHub - IsaacDodd/flowchart: Flowchart is a STATA module/package that generates publication-quality Subject Disposition Flowchart Diagrams in LaTeX Format. This package generates PGF/TikZ code through texdoc, compiled in LaTeX to produce the diagram as a PDF. The final diagram is the same in style as ones used in the PRISMA Statement, CONSORT 2010 Statement, or STROBE Statement Reporting Guidelines.
Flowchart is a STATA module/package that generates publication-quality Subject Disposition Flowchart Diagrams in LaTeX Format. This package generates PGF/TikZ c...

インストール方法

以下の方法で。

. net install flowchart, from("https://raw.github.com/isaacdodd/flowchart/master/") replace

Flowchart moduleは”textdoc”および”sjlatex”moduleを利用するので、インストール後に

flowchart setup

を実行しておく。このコードを実行すると、current directoryに以下のようなファイルが生成されるので、あらかじめ作業環境にflowchartといった名前でフォルダを作成して、そこに移動しておくと良い。

上記コマンド実行後、生成されるファイル。

導入

このパッケージは、Stataに必要なTikZコードを生成し、LaTeXに組み込んでPDFや他の形式で図を作成することができる。以前記事を書いた”estout”パッケージに似ており、研究の参加者が分析グループにどのように含まれたか、あるいは除外されたかを示すフローチャートや、さらなる細分化を示すために使用される。

最終的な図は、PRISMAステートメント、CONSORT 2010ステートメント、またはSTROBEステートメント報告ガイドラインに使用されているものと同様のスタイルになる。このパッケージにより、図の自動生成が可能となり、分析が変わるたびに図中の数値も変更されるため、時間を大幅に節約できる。

使い方

インストール後、

flowchart getstarted

で使用方法が表示される。

あるいは、

help flowchart

でより詳細なヘルプが表示される。

基本的な構文は、

flowchart [command] [, options]

となる。コマンド一覧を紹介していく。

Commands説明
i(nit)init using filename.dta
データファイルが生成されるファイル名(またはファイルパス付きのファイル名)を指定して図を初期化する。このファイルはStataのflowchartパッケージによって作成され、LaTeXのdatatoolパッケージが図内の数値データを生成するために使用する。
wri(terow)(…)
writerow(rowname): center-block, left-block
図に新しい行を作成する。詳細な説明は以下にある。
con(nect)rowname_blockorientation, [arrow(type)]
rowname underscore block-orientationを指定することで、行内または行間のブロック間に矢印を描画する。
fin(alize)finalize, template(“filename.texdoc”) output(“filename.tikz”)
事前に指定されたfilename.texdoc内のtexdoc構文を使用して、TikZコードをfilename.tikzに書き込み、原稿のLaTeXドキュメントに含める。
setuptexdocおよびその他の依存関係をインストールし、現在のflowchartインストールを置き換える。あるいは、[update]オプションを指定して、flowchartパッケージのインストールを更新することもできる。
deb(ug)debug, [on off logreset info check tikz]
デバッグ機能をオンまたはオフにし、サポートが必要な場合に使用できるDebugLog.logを生成する。tikzオプションを指定すると、最終的なTikZファイルにデバッグ用の文字列を生成する。
flowchartのコマンド一覧

以下はオプションの一覧。

コマンド説明
wri(terow)(rowname)
‘rowname’で新しい行を作成する。rownameは英数字でなければならない。rownameは各行のブロックの一部にもなる。最初のブロックは中央ブロック、2番目のブロックは左ブロックである。各ブロックはカンマ(,)で区切られる。
lin(e)-triplets
“variablename” nnn “Description.”
各ブロックは複数の「行」を受け取ることができる。各行は、スペースで区切られた3つのフィールドのトリプレットから構成される。行のトリプレット同士もスペースで区切られる。最初のフィールドは変数名、2番目はそれに関連付けられた数値、3番目はブロック内に表示される説明である。複数行を指定した場合、最初の行にはコンマが付き、他の行はインデントされる。
Flowchart_Blankこれは、フローチャートパッケージにブロックが空であることを知らせるためのキーワードである。これを使用して、矢印を次に来るブロックに接続することができる。
flowchartのオプション一覧

具体的な使用法

flowchart setup

を行うと、関連ファイルが生成される。まずは、Stata側で”flowchart_example1.do”を実行し、”methods–figure-flowchart.tikz”ファイルを生成しておく。その後、”manuscript.tex”をTexShopなどでコンパイルすると、manuscript.pdfが出力される。

出力されたpdf。

基本的には、この”flowchart_example1.do”を修正し、自分の望むフローチャートを作成すれば良いと思う。ちょっと修正すると、下のようなシンプルなフローチャートも作成できる。

シンプルなフローチャート。

“exmaple1.do”を見ればわかるが、ブロックを作成するときは

flowchart writerow(enrollement):
    "referred" 150 "(Referred)"

のような構文で作成する。説明を追加するときは、

flowchart writerow(name1):///
    "referred" 150 "Reffered", ///
    "refered_excluded" 17 "Excluded" ///
        "referred_excluded_nopartic" 9 "a) Did not wish to participate" ///
        "referred_excluded_noshow" 5 "b) Did not show for interview" ///
        "refferred_excluded_other" 3 "c) Other reasons"

のようにブロックを作成し(”,”のある場所とない場所の違いに注意)、その後

flowchart connect enrollment_center enrollment_left

のように矢印を繋げていく。上の例だと、enrollmentには2つのブロックが作成されているので、これを矢印でつなげるには、”enrollment_center”と”enrollment_left”を繋げれば良い。

図やタイトルのフォントをTimesNewRomanに変更する場合は、manuscript.texに以下の2行を追加しておく。

\usepackage{times}
\usepackage{mathptmx}

注意事項

説明文の中で、%などの記号を用いるときは、バックスラッシュ”\”をつける必要がある。

flowchart writerow(first): ///
    "responded" 4489 "84\% response rate", ///
    "responded_excluded" 409 "Excluded" ///
        "responded_excluded_inclusioncritunmet" 409 "Did not consent or missing data"

関連記事

Stataで複数のグラフを1枚にまとめる方法
Stataでベン図を書く方法
Tableをコマンドひとつで作成する方法「table1_mc」について

コメント

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