「Attribute Map Dataset」を利用して、「SGPLOT」や「GTL」でマーカーや線などの属性を定義する方法を紹介します。
まず、以下の可愛らしいグラフをご覧ください。
年齢ごとに、マーカーの種類や色を変えて散布図を描いてます。
どうやってるか解説していきたいと思います。
まずグループ(年齢)毎にマーカーの種類や色を定義したデータセットを作ります。
(このデータセットを「Attribute Map Dataset」と呼びます)
(このデータセットを「Attribute Map Dataset」と呼びます)
data MYMAP; input ID:$10. VALUE:$10. MARKERCOLOR:$10. MARKERSYMBOL:$30. MARKERSIZE:8.; cards; myid 11 blue CircleFilled 11 myid 12 red StarFilled 11 myid 13 yellow TriangleFilled 11 myid 14 lightgreen DiamondFilled 11 myid 15 black SquareFilled 11 myid 16 skyblue TriangleDownFilled 11 ; |
たとえば1OBS目では以下を設定しています。
- グループの値(今回は年齢)が「11」の時に、
- マーカー色「blue」
- マーカーの種類「CircleFilled」
- マーカーサイズ「11」
データセットには以下のような変数を含めることが出来ます(一部抜粋)
変数 | 型 | 設定内容 | 備考 |
ID | 文字 | ID値 | |
VALUE | 文字 | グループの値 | ・例えば年齢をグループにするのであれば年齢の値 ・グループにする変数にFORMATが割り当てられている場合、FORMATを当てた後の値を指定する事。 例えば 11 = "11歳" のようにFORMATが当てられている場合、"11歳" の方を指定する。 |
FillColor | 文字 | グラフの中の色 | ・棒グラフの中の色など |
MarkerColor | 文字 | マーカーの色 | ・散布図のマーカーの色など |
MarkerSize | 数値 | マーカーのサイズ | ・散布図のマーカーのサイズなど |
MarkerSymbol | 文字 | マーカーの種類 | ・散布図のマーカーの種類など |
LineColor | 文字 | 線の色 | ・折れ線グラフの線の色など |
LinePattern | 数値/ 文字 | 線の種類 | ・折れ線グラフの線の種類など |
LineThickness | 数値 | 線の太さ | ・折れ線グラフの線の太さなど |
…等々 |
(「ID」と「VALUE」は必ずデータセットに含める必要があり、それ以外は任意)
Step1で作った「Attribute Map Dataset」をSGPLOTまたはGTLで参照してグラフを描くことが出来ます。
注意:
SAS9.4M3より前のバージョンでは、この機能 (Attribute Map Dataset) と一緒に、PLOTステートメント (SCATTERやSERIESなど) でも属性を定義している場合、結果のプロット部分と凡例部分の属性が一致していないおかしな状態になってしまうことがある?らしいので注意。
- SGPLOTで描画
proc sgplot data=SASHELP.CLASS dattrmap=MYMAP;
scatter x=HEIGHT y=WEIGHT / group=AGE grouporder=ascending attrid=myid;
run;
|
- 「group=」でAGE毎に散布図を描いています。
- 「dattrmap=」で参照する Attribute Map Dataset を指定。
- 「attrid=」で参照する Attribute Map Dataset のID値を指定。
- GTLで描画
proc template ; define statgraph MYTEMP ; begingraph; layout overlay; scatterplot x=HEIGHT y=WEIGHT / group=AGE grouporder=ascending name="leg1"; discretelegend "leg1" / title="Age"; endlayout; endgraph; end; run; proc sgrender data=SASHELP.CLASS template=MYTEMP dattrmap=MYMAP; dattrvar AGE="myid"; run; |
- 「group=」でAGE毎に散布図を描いています。
- 「dattrmap=」で参照する Attribute Map Dataset を指定。
- 「dattrvar」でグループ変数AGEに対応づけるAttribute Map DatasetのID値を指定。
0 件のコメント:
コメントを投稿