2015年8月24日月曜日

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


LAYOUTステートメントによって、PLOTを重ねたり並べたりといったレイアウトの設定が出来ます。

構文
PROC TEMPLATE ;
   DEFINE STATGRAPH テンプレート名;
         BEGINGRAPH ;
             LAYOUTステートメント  ;
                     PLOTステートメント;
             ENDLAYOUT;
         ENDGRAPH;
   END;
RUN;


適当なデータ作成

data DT1;
label NO="No." HEIGHT="身長(父親)" HEIGHT2="身長(子供)";
input NO HEIGHT HEIGHT2;
cards;
001 165.5 154.5
002 175.8 160.5
003 159.8 150.9
004 180.5 158.2
005 156.8 145.9
;


LAYOUT OVERLAY

もっともよく使用されるLAYOUTステートメント。
この中に、PLOTステートメントを沢山書いて、PLOTを重ね合わせる事が出来ます。

* グラフテンプレート作成 ;
proc template ;
  define statgraph MYGRAPH1;
      begingraph ;
          entrytitle "親子の身長";
          layout overlay  ;
              scatterplot x=HEIGHT y=HEIGHT2; * 散布図 ;
              regressionplot x=HEIGHT y=HEIGHT2 ; * 回帰直線 ;
          endlayout;
      endgraph;
  end;
run;

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

とりあえず最低限 「LAYOUT OVERLAY」 さえ覚えとけばいい感じです。


LAYOUT OVERLAYEQUATED

「LAYOUT OVERLAY」と同様、PLOTの重ね合わせが出来る上、
X軸の幅とY軸の高さなどを自動的に統一してくれます。

EQUOTETYPE=」オプションで、どんな感じで軸を統一するか設定でき、以下のように「SQUARE」を設定すると、X軸とY軸の「軸の増分」、「最小・最大値」、「幅と高さ」を統一して正方形のグラフにしてくれます。

* グラフテンプレート作成 ;
proc template ;
  define statgraph MYGRAPH2;
      begingraph ;
         entrytitle "親子の身長";
         layout overlayequated  / equatetype=square ;
              scatterplot x=HEIGHT y=HEIGHT2;
         endlayout;
       endgraph;
  end;
run;

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




その他

この他、「LAYOUT OVERLAY3D」というのもあり、3Dのグラフを作る事が出来ます。
詳細はリンクさせていただいてる 僕の頁「GTLによる3Dプロットあれこれ」 で解説をされています。


GTL入門記事一覧

0 件のコメント:

コメントを投稿