2016年12月27日火曜日

Graph Template Language(GTL)入門:軸の設定



X軸とY軸のオプションを一部まとめました。
まず以下のように軸の場所によってオプションの名前が決まっています。




構文
PROC TEMPLATE ;
   DEFINE STATGRAPH テンプレート名;
   BEGINGRAPH ;
           LAYOUTステートメント   /   XAXISOPTS  = ( x軸オプション )
                                             YAXISOPTS  = ( y軸オプション )
                                             X2AXISOPTS = ( x2軸オプション )
                                             Y2AXISOPTS = ( y2軸オプション )
                                             WALLDISPLAY = NONE    /* X2AXISとY2AXISの軸を消す */ ;

                    PLOTステートメント    /  XAXIS=X | X2    YAXIS=Y | Y2;     /* 軸の表示場所 */

           ENDLAYOUT;
   ENDGRAPH;
   END;
RUN;

PLOTステートメントでx軸とy軸の表示場所を設定できます。(デフォルトは「XAXIS=X YAXIS=Y」)


軸オプション  (随時追加予定)  ※SAS9.4から追加されたものも含む

  設定内容  設定
 軸に表示するパーツ

 display = line | label | ticks | tickvalues | none )

 (複数指定可。noneの場合だけカッコで囲む必要なし)
 反対側の軸表示するパーツ

 displaysecondary = line | label | ticks | tickvalues )

 (複数指定可)
 軸ラベル

 label = 'ラベル'
 軸ラベル位置 

 labelposition left | right | top | bottom
 軸ラベル書式

 labelattrs = (
         family = 'フォント'
         size = サイズ
         color = 
 )
 目盛の書式

 tickvalueattrs=(
         family = 'フォント'
         size = サイズ
         color = 
 )
 グラフ内に目盛線を表示

 griddisplay = on
 目盛の設定 linearopts (
        viewmin  目盛の最小値
        viewmax = 目盛の最大値 
        tickvaluesequence = (  ※ 注意事項あり
                  start = 目盛開始値
                  end   = 目盛終了値
                  increment = 目盛間隔
                  tickvaluelist = ( 目盛値1 目盛値2 ・・・目盛値リスト ) 
        )
        tickvalueformat = 目盛に当てるフォーマット
        tickvaluerotation = vertical ・・・目盛の文字を縦向きに 
        tickvaluefitpolicy = thin | rotate | stagger| extract など
        ・・・ 目盛の文字が入りきらない時に文字の向きを変える
 )
 軸を離散値にする

 type=discrete
 離散値の目盛の設定 discreteopts = (
        tickvaluelist = ( "目盛値1" "目盛値2" ・・・目盛値リスト )
        tickvalueformat = 目盛に当てるフォーマット
        tickvaluerotation= vertical ・・・目盛の文字を縦向きに 
        tickvaluefitpolicy= thin | rotate | stagger| extract など
        ・・・ 目盛の文字が入りきらない時に文字の向きを変える
 )



proc template ;
   define statgraph MYGRAPH;
      begingraph;
      layout overlay / walldisplay=none
                              xaxisopts=(labelposition=right griddisplay=on linearopts=(viewmin=10 viewmax=20));

        scatterplot x=AGE y=WEIGHT;
   
      endlayout;
   endgraph;
end;
run;

proc sgrender data=SASHELP.CLASS template=MYGRAPH;
run;


3 件のコメント:

  1. すいません。ブログの設定について教えていただきたいのですが,matsu aさんはSASの構文の背景を変えたり表を挿入されていますよね。これらはどのように設定していらっしゃいますか? HTMLを書いていらっしゃるのでしょうか?

    返信削除
  2. こんにちは。
    おっしゃる通りHTML書いてます。けっこう面倒です笑
    一回書いちゃえばコビーして使えるのでいいんですが。

    返信削除
  3. 仕事でドタバタしていてお返事遅くなりました。
    なるほど。力作なのですね。教えていただきありがとうございました。
    今のままだと,後から見難いのでHTMLも時間があるときに調べてみます。

    返信削除