BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Taka_FUK_JPN
Fluorite | Level 6

お世話になっております.

 

SAS9.3を使用しています.

 

proc sgplot のdattrmapオプションを使って,

重ね合わせている棒グラフ(vectorを使用)と散布図(scatterを使用)にグループ別に,自由に色をつけたいと考えています.

 

ただ,vectorのみ,sactterのみであれば,上手くいくのですが,

重ね合わせようとすると上手くいきません.

解決方法などご教示いただけますと幸いです.

 

 

プログラムは下記のような感じです.


    data Attrs;
     length Value $20. MarkerColor $20. LineColor $20.;
     ID = "D1";
     Value = putn(40,"D1f.");LineColor="bibg";output;
     Value = putn(80,"D1f.");LineColor="steel";output;
    
     ID = "D4";
     Value = putn(300,"D4f.");MarkerColor="CX090000";output;
     Value = putn(400,"D4f.");MarkerColor="CX110000";output;

    run;

 

 

proc sgplot data = OUT_EX DATTRMAP = Attrs;

 

     vector x=days3_&j. y=order / noarrowheads yorigin = order
         lineattrs = (pattern=solid  thickness=10) name="course&j."
         group = dose3_&j. ATTRID = D1
     ;
 

     scatter x=days4_&j. y=order4 / markerattrs=(symbol=circlefilled)
         group = dose4_&j. ATTRID = D4
     ;

 

 

 

よろしくお願いします.

1 ACCEPTED SOLUTION

Accepted Solutions
yu_sas
SAS Employee

サンプルデータで書き換えてみましたが、構文には問題ないように思われます。わかりやすいように

マーカーの色は少し変えました。データセットAttrsが想定通りに作成されているか等、データ部分を

確認してみてはどうでしょうか。あと、可能であれば実行可能なサンプルデータや、期待の結果と

得られた結果の画像などがあると回答しやすいかもしれません。

 

    data Attrs;
     length Value $20. MarkerColor $20. LineColor $20.;
     ID = "D1";
     Value = "男子";LineColor="bibg";output;
     Value = "女子";LineColor="steel";output;
     ID = "D4";
     Value = "男子";MarkerColor="CX090000";output;
     Value = "女子";MarkerColor="CXf10000";output;
    run;

data class;
set sashelp.class;
sex2=sex;
run;

proc sgplot data =class(obs=8) DATTRMAP = Attrs;
     vector x=age y=height / noarrowheads yorigin=height
         lineattrs = (pattern=solid  thickness=10) 
         group =sex ATTRID = D1;
     scatter x=age y=height / markerattrs=(symbol=circlefilled)
         group =sex2 ATTRID = D4;
run;

View solution in original post

2 REPLIES 2
yu_sas
SAS Employee

サンプルデータで書き換えてみましたが、構文には問題ないように思われます。わかりやすいように

マーカーの色は少し変えました。データセットAttrsが想定通りに作成されているか等、データ部分を

確認してみてはどうでしょうか。あと、可能であれば実行可能なサンプルデータや、期待の結果と

得られた結果の画像などがあると回答しやすいかもしれません。

 

    data Attrs;
     length Value $20. MarkerColor $20. LineColor $20.;
     ID = "D1";
     Value = "男子";LineColor="bibg";output;
     Value = "女子";LineColor="steel";output;
     ID = "D4";
     Value = "男子";MarkerColor="CX090000";output;
     Value = "女子";MarkerColor="CXf10000";output;
    run;

data class;
set sashelp.class;
sex2=sex;
run;

proc sgplot data =class(obs=8) DATTRMAP = Attrs;
     vector x=age y=height / noarrowheads yorigin=height
         lineattrs = (pattern=solid  thickness=10) 
         group =sex ATTRID = D1;
     scatter x=age y=height / markerattrs=(symbol=circlefilled)
         group =sex2 ATTRID = D4;
run;
Taka_FUK_JPN
Fluorite | Level 6

ご丁寧にご教示いただきありがとうございました.

 

こちらの環境でも問題なさそうでした.

ただ,マクロ内でループさせながら組んでみたところ,

予期せぬエラーが出てしまったので,テクニカルサポートに問い合わせています.

また,新たな情報がわかり次第,共有させていただきます.

 

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
  • 1138 views
  • 0 likes
  • 2 in conversation