GTLで凡例を設定する「DISCRETELEGEND」と「MERGEDLEGEND」を紹介します。
まずは例を示して、その後構文を紹介したいと思います。
例
proc template ; define statgraph MYTEMP ; begingraph; layout overlay; scatterplot x=HEIGHT y=WEIGHT / group=SEX name="sca" ; regressionplot x=HEIGHT y=WEIGHT / group=SEX name="regr" ; discretelegend "sca" "regr" / title="凡例"; endlayout; endgraph; end; run; proc sort data=SASHELP.CLASS out=CLASS; by SEX; run; proc sgrender data=CLASS template=MYTEMP ; run; |
- 「SCATTERPLOT」で凡例の参照名 "sca" を定義しておく
- 「REGRESSIONPLOT」で凡例の参照名 "regr" を定義しておく
- 「DISCRETELEGEND」で参照名 "sca" と "regr" を指定してこれらの凡例を表示しています
- それぞれのPLOTステートメントで「GROUP=SEX」としているので、グループ変数をSEXとして凡例が表示されています。
構文
PROC TEMPLATE ; DEFINE STATGRAPH テンプレート名; BEGINGRAPH ; LAYOUTステートメント; PLOTステートメント / NAME = "参照名"; DISCRETELEGEND "参照名" / オプション; ENDLAYOUT; ENDGRAPH; END; RUN; |
- PLOTステートメントの「NAME=」で凡例の参照名を設定 (任意の名前でOK)
- DISCRETELEGENDで参照名を指定して、凡例を表示します。
DISCRETELEGENDのオプション (随時追加予定)
注意:
他のオプション・ステートメントとの組み合わせで、オプションが無効になることがあるため、トライ&エラーで正しく動くか確認が必要です。
設定内容 | 設定 |
凡例タイトル | title = "タイトル" |
凡例タイトルのボーダー | titleborder = true | false |
凡例タイトルの書式 | titleattrs = ( family = 'フォント' size = サイズ color = 色 weight = bold /* 太字 */ ) |
凡例の書式 | valueattrs = ( family = 'フォント' size = サイズ color = 色 weight = bold /* 太字 */ ) |
凡例の書式で文字の大きさを変えたときに 凡例のマーカー等も大きくするか | autoitemsize = true | false |
凡例のボーダー | border = true | false |
凡例の表示順 (横順か縦順か) | order = rowmajor | columnmajor |
凡例の縦位置 | valign = top | bottom | center |
凡例の横位置 | halign = right | left | center |
凡例の背景色 | backgroundcolor = 色 |
「order = rowmajor」指定時に 水平方向に表示する凡例エントリの数 | across = 数 |
「order = columnmajor」指定時に 垂直方向に表示する凡例エントリの数 | down = 数 |
MERGEDLEGENDステートメントは使える条件が限定されますが、凡例を結合 (融合?) させることが出来ます。
例
proc template ; define statgraph MYTEMP ; begingraph; layout overlay; scatterplot x=HEIGHT y=WEIGHT / group=SEX name="sca" ; regressionplot x=HEIGHT y=WEIGHT / group=SEX name="regr" ; mergedlegend "sca" "regr" / title="凡例"; endlayout; endgraph; end; run; proc sort data=SASHELP.CLASS out=CLASS; by SEX; run; proc sgrender data=CLASS template=MYTEMP ; run; |
「SCATTERPLOT」と「REGRESSIONPLOT」はそれぞれグループ変数をSEXにしてPLOTしていますが、凡例のマーカーと線をグループごとにくっつけてしまおう、ということでMERGEDLEGENDを使っています。
MERGEDLEGENDが使える条件
- PLOTステートメントに「GROUP=」で、グループ化した値を凡例に表示している場合
- マーカーと線を結合する場合のみ?に有効らしい
- MERGEDLEGENDで指定可能なオプションはDISCRETELEGENDとほぼ同じ
凡例の設定
0 件のコメント:
コメントを投稿