いつも大変お世話になっております。
SGPLOTにて散布図で描写したグラフに、エリア別に背景色を分けて表示させたいと考えています。
正方形のマスを9象限に分けて各象限別に背景色を変えるイメージです。
(2変数のどちらも大きい③のエリアの背景は赤い背景にする、など)
尚、各象限の境界値は固定の値です。
①|②|③
-----------------
④|⑤|⑥
-----------------
⑦|⑧|⑨
bandステートメントで行うと軸に対して上下限を指定できるのですが、もう一方の軸に対する上下限を
指定することができないようなので、
どのようにするとよいか助言をいただきたく思います。
よろしくお願いいたします。
こんにちは。
適当な例ですが、以下のような感じでいけるかと思います。
data myband;
input grp x1 low1 up1;
cards;
1 50 50 80
1 55 50 80
2 50 80 120
2 55 80 120
3 55 50 80
3 60 50 80
4 55 80 120
4 60 80 120
;
data class;
merge sashelp.class myband;
run;
proc sgplot data=class;
scatter x=height y=Weight;
band x=x1 lower=low1 upper=up1 / group=grp transparency=0.6;
styleattrs datacolors=(yellow green pink red);
run;
SASのバージョンによっては動かないとかあるかもしれません・・
amatsu 様
ご回答ありがとうございます。
頂いた方法で無事にできました。
ちなみにグループの凡例を非表示にさせたいのですが、
どのようにするとよいでしょうか?
初歩的なご質問で恐縮ですが、よろしくお願いいたします。
NOAUTOLEGEND で凡例ぜんぶを削除できます。
proc sgplot data=xxxx noautolegend;
amatsu 様
ありがとうございます。
そうやってできるのですね。
大変勉強になります。
bandの凡例は非表示でscatterの凡例は表示させたいときは、
NOAUTOLEGENDを指定しつつ、
keylegendでscatterのみ凡例を指定する、
という方法でうまくいきそうです。
(もっとスマートなやり方があればご教授いただけると幸いです。)
それでしたら NOAUTOLEGEND はダメですね。
proc sgplot data=class;
scatter x=height y=Weight / group=sex name="sca";
band x=x1 lower=low1 upper=up1 / group=grp transparency=0.6;
styleattrs datacolors=(yellow green pink red);
keylegend "sca";
run;
SCATTER の NAME=オプションと、KEYLEGEND を組み合わせればOKです。
amatsu様
表示させたい凡例のみをKEYLEGENDに指定するとよいのですね。
ありがとうございました。
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!