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様

 

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

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

 

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

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

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

 

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
Discussion stats
  • 2 replies
  • 757 views
  • 2 likes
  • 2 in conversation