値の範囲によりグラフの色を変更する

[OS] ALL
[リリース] 9.4
[キーワード] SGPLOT, Attribute Map

[質問]

SGPLOTプロシジャでグラフを作成しています。値の範囲によってシンボルの色を変更することはできるでしょうか。

[回答]

SAS 9.4 TS1M3よりRange Attribute Map機能を用いることで値の範囲に対し色を設定できます。ただし、あらかじめ値の範囲と対応する色を持つデータセットを作成しておく必要があります。

例)

DATA sin;
CALL STREAMINIT(123);
DO x=0 TO 2*CONSTANT('PI') BY 0.1;
 y=SIN(x)+RAND('UNIFORM')-0.5;
 OUTPUT;
END;
RUN;

/* 0以下の値は青、0を越える値は赤を指定 */
DATA rattr;
id="myID";
INPUT MIN $ MAX $ ALTCOLOR $20.;
DATALINES;
_min_ 0 DeepSkyBlue
0 _max_ FireBrick
;

PROC SGPLOT DATA=sin RATTRMAP=rattr;
SCATTER X=x Y=y / COLORRESPONSE=y RATTRID=myID
MARKERATTRS=(SYMBOL=CircleFilled);
REFLINE 0;
XAXIS VALUES=(0 1.57 3.14 4.71 6.28)
VALUESDISPLAY=("0" "pi/2" "pi" "3pi/2" "2pi");
RUN;

結果

詳細は以下のリンクをご参照ください。 SAS® 9.4 ODS Graphics: Procedures Guide, Sixth Edition
Using Range Attribute Maps
http://support.sas.com/documentation/cdl/en/grstatproc/69716/HTML/default/viewer.htm#p1cnbdobxlbk0jn1an1r978ohy7j.htm