2015年9月1日火曜日

Graph Template Language(GTL)入門:LAYOUTステートメント【LATTICE】【GRIDDED】



LAYOUT LATTICE

LAYOUT LATTICEの中にPLOTステートメントを複数書いて左右上下に並べる事ができます。


構文
  LAYOUT LATTICE  /  ROWS=行数  COLUMNS=列数  ORDER=配置順;
       PLOTステートメント;
  ENDLAYOUT;


① まず簡単な例

* グラフテンプレート作成 ;
proc template ;
  define statgraph MYGRAPH1;
      begingraph ;
          layout lattice;
              boxplot x=AGE y=HEIGHT;
              boxplot x=AGE y=WEIGHT;
          endlayout;
      endgraph;
  end;
run;

* グラフ作成実行 ;
proc sgrender data=SASHELP.CLASS template=MYGRAPH1;
run;



② 左右上下に並べる

* グラフテンプレート作成 ;
proc template ;
  define statgraph MYGRAPH2;
      begingraph ;
          layout lattice / rows=2 columns=2 ;
              boxplot x=AGE y=HEIGHT;
              boxplot x=AGE y=WEIGHT;
              scatterplot x=WEIGHT y=HEIGHT;
          endlayout;
      endgraph;
  end;
run;

* グラフ作成実行 ;
proc sgrender data=SASHELP.CLASS template=MYGRAPH2;
run;


③ PLOTの配置順を設定する

ORDER=オプションで配置順を設定します。

ORDER=ROWMAJOR ・・・ 横方向に配置していく (デフォルト設定)

ORDER=COLUMNMAJOR ・・・ 縦方向に配置していく

縦方向に配置していく例
* グラフテンプレート作成 ;
proc template ;
  define statgraph MYGRAPH3;
      begingraph ;
          layout lattice / rows=2 columns=2 order=columnmajor;
              boxplot x=AGE y=HEIGHT;
              boxplot x=AGE y=WEIGHT;
              scatterplot x=WEIGHT y=HEIGHT;
          endlayout;
      endgraph;
  end;
run;

* グラフ作成実行 ;
proc sgrender data=SASHELP.CLASS template=MYGRAPH3;
run;


④ 「LAYOUT LATTICE」 と 「LAYOUT OVERLAY」 を組み合わせる

* グラフテンプレート作成 ;
proc template ;
  define statgraph MYGRAPH4;
      begingraph ;
          layout lattice;
              layout overlay;
                  scatterplot x=WEIGHT y=HEIGHT;
                  regressionplot x=WEIGHT y=HEIGHT;
              endlayout;
              boxplot x=AGE y=HEIGHT;
          endlayout;
      endgraph;
  end;
run;

* グラフ作成実行 ;
proc sgrender data=SASHELP.CLASS template=MYGRAPH4;
run;

上は「LAYOUT OVERLAY」で散布図と回帰直線を重ねたグラフで、
下は箱ひげ図をプロットして並べています。


LAYOUT GRIDDED

LAYOUT GRIDDEDも、PLOTを左右上下に並べる事ができます。

* グラフテンプレート作成 ;
proc template ;
  define statgraph MYGRAPH5;
      begingraph ;
          layout gridded;
              boxplot x=AGE y=HEIGHT;
              boxplot x=AGE y=WEIGHT;
          endlayout;
      endgraph;
  end;
run;

* グラフ作成実行 ;
proc sgrender data=SASHELP.CLASS template=MYGRAPH5;
run;

「LAYOUT LATTICE」と 「LAYOUT GRIDDED」の大きな違いとして、 
「LAYOUT LATTICE」では、オプションやステートメントを指定することで、PLOT間の軸を共通化させたり色々出来るところ。

詳細はまた別の機会にて。。


GTL入門記事一覧

0 件のコメント:

コメントを投稿