2015年12月24日木曜日

SASでクリスマスツリーを描いてみる



SGPLOTプロシジャで遊んでみました。

HTML出力が有効になっている前提です。
バージョンや環境によってうまく表示されないかも。。


*** ツリー描画用データ作成 ;
data TREE;
input X Y1-Y5;
cards;
0 1 0 -1 -2 -4
;
run;

*** ツリー描画 ;
title ;
proc sgplot data=TREE noautolegend;
   scatter x=X y=Y1 /  markerattrs=(symbol=starfilled size=0.8cm color=yellow);
   scatter x=X y=Y2 /  markerattrs=(symbol=trianglefilled size=1cm color=green);
   scatter x=X y=Y3 /  markerattrs=(symbol=trianglefilled size=2cm color=green);
   scatter x=X y=Y4 /  markerattrs=(symbol=trianglefilled size=3cm color=green);
   scatter x=X y=Y5 /  markerattrs=(symbol=squarefilled size=0.6cm color=brown);
   inset "Happy Holidays !!"/ position=bottom textattrs=(size=50cm);
   xaxis min=-3 max=3  display=none;
   yaxis min=-5 max=1  display=none;
run;




雪も降らせてみました。(SAS9.4以上で動作します)

*** ツリー描画用データ作成 ;
data TREE;
input X Y1-Y5;
cards;
0 1 0 -1 -2 -4
;
run;

*** ゆき描画用データ作成 ;
data SNOW;
  call streaminit(123);
  do X=-3 to 3 by 0.2;
     SNOW = rand('uniform')*8-4;
     output;
  end;
run;

data DT1;
  set TREE SNOW;
run;

*** ツリーとゆき描画 ;
title ;
proc sgplot data=DT1 noautolegend;
   styleattrs wallcolor=black;
   scatter x=X y=Y1 /  markerattrs=(symbol=starfilled size=0.8cm color=yellow);
   scatter x=X y=Y2 /  markerattrs=(symbol=trianglefilled size=1cm color=green);
   scatter x=X y=Y3 /  markerattrs=(symbol=trianglefilled size=2cm color=green);
   scatter x=X y=Y4 /  markerattrs=(symbol=trianglefilled size=3cm color=green);
   scatter x=X y=Y5 /  markerattrs=(symbol=squarefilled size=0.6cm color=brown);
   scatter x=X y=SNOW / markerattrs=(symbol=circlefilled size=0.1cm color=white);
   inset "Happy Holidays !!"/ position=bottom textattrs=(color=white size=50cm);
   xaxis min=-3 max=3  display=none;
   yaxis min=-5 max=1  display=none;
run;


単純な仕組みですが、散布図のシンボルを★▲■●にしてサイズを大きくして表示させています。


0 件のコメント:

コメントを投稿