BookmarkSubscribeRSS Feed
chie_sas
Obsidian | Level 7

度々のご質問失礼いたします。

 

SGPLOTで時系列グラフを作成する際、

エリア別(正常期間、警告期間、危険期間)に背景を色分けしたいと思っています。

styleattrsで指定したカラーをblockステートメントで背景色を変えようとすると、

初日から順に色が割り当てられるので、危険期間をRedに、警告期間をYellowになどのコントロールができずにいます。

 

背景色でなくても、エリアが色で判別できるようなものであれば大丈夫なのですが、

何か良い方法は無いでしょうか?

 

よろしくお願いいたします。

data WORK.test;
length date_ Area_type $10.;
infile datalines dlm='09'x;
input date_ $ Area_type $;
date = input(date_,yymmdd10.);
format date yymmdds10.;
drop date_;
datalines;
2017/10/26	R
2017/10/27	B
2017/10/28	B
2017/10/30	R
2017/10/31	Y
2017/11/1	Y
2017/11/2	R
2017/11/3	R
2017/11/4	R
2017/11/5	Y
2017/11/6	Y
2017/11/7	Y
2017/11/8	Y
2017/11/9	B
2017/11/10	Y
;
run;

proc sgplot data=test;
	styleattrs datacolors=(blue red yellow);
	block x=DATE block=Area_type;
run;

 

2 REPLIES 2
yu_sas
SAS Employee

値に対して特定の属性を指定したい場合はDiscrete Attribute Mapと呼ばれる機能が利用できます。

あらかじめ値と属性の対応を示すデータセットを作成しておき、それを指定する形式になります。

 

data dattr;
retain id "color";
input value $ fillcolor $;
cards;
Y yellow
R red
B Blue
;

proc sgplot data=test dattrmap=dattr;
	block x=DATE block=Area_type / attrid=color;
run; 

 

chie_sas
Obsidian | Level 7

you_sas様

 

早々のお返事ありがとうございます。

教えていただいた方法でやりたかったことができました。

 

こんなことができるんですね。

今まで諦めていたことができて感激です。

ありがとうございました。