簡単なグラフであれば、SGPLOTプロシジャなどが使えますが、
デザインをこうしたい、ああしたい、、という場合、カスタマイズしたグラフのテンプレートを作る必要があります。
このテンプレートを作るのが、Graph Template Language(GTL)です。
出来ることが多すぎるので、ざっくり解説したいと思います。
間違ってるところなどがあれば、修正・追記していく予定ですので、ご指摘お願いします。
基本構文
①まずは、TEMPLATEプロシジャでグラフテンプレートを作ります。
PROC TEMPLATE ; DEFINE STATGRAPH テンプレート名 ; BEGINGRAPH ; ENTRYTITLE "グラフタイトル" ; LAYOUT レイアウト種類 ; プロット文 ; ENDLAYOUT ; ENTRYFOOTNOTE "フットノート" ; ENDGRAPH ; END ; RUN ; |
DEFINE STATGRAPH テンプレート名 ;
~ END ; |
作成するテンプレート名を指定。
適当な名前でok。 |
BEGINGRAPH ;
~ ENDGRAPH ; |
お決まりの文。開始と終了を明示。
|
ENTRYTITLE "タイトル" ;
|
グラフのタイトル
|
ENTRYFOOTNOTE "フットノート" ;
|
グラフのフットノート
|
LAYOUT レイアウト種類 ;
~ ENDLAYOUT ; |
複数のプロットを左右に並べたり、重ねたり、、
等のレイアウトの種類を選択します。 (ここは別の機会で紹介予定) |
②上で作ったテンプレートを、SGRENDERプロシジャで読み込んで、グラフを作ります。
PROC SGRENDER DATA=プロットするデータセット TEMPLATE=テンプレート名 ; RUN; |
簡単な例
(上記「結果のグラフ出てこないよ」って場合は、なんかしらの設定によって出力がオフになっている可能性あり)
* Sample Dataset ; data DT1; input DAY WEIGHT; cards; 0 85.5 10 79.5 20 75.2 30 70.5 40 65.8 50 72.1 ; * テンプレートを作成 ; proc template ; define statgraph MYTEMP ; begingraph; entrytitle "ダイエット記録"; layout overlay; seriesplot x=DAY y=WEIGHT / display=all ; endlayout; endgraph; end; run; * テンプレートを使って、グラフを作成 ; proc sgrender data=DT1 template=MYTEMP ; run; |
(上記「結果のグラフ出てこないよ」って場合は、なんかしらの設定によって出力がオフになっている可能性あり)
解説
基本構文と照らし合わせると理解しやすいと思います。
ただしプログラム中の以下の部分は、別記事で解説予定なので、詳細は割愛します。
layout overlay;
seriesplot x=DAY y=WEIGHT / display=all ;
endlayout;
layout overlayでなんかレイアウトを設定してから、seriesplotステートメントを使って時系列にプロットをしてるって感じです。
GTL入門記事一覧
0 件のコメント:
コメントを投稿