去年書いた記事 「SASでクリスマスツリーを描いてみる」 を少し進化させてみました。
雪だるまと雪をunicodeで取得して、雪をチラチラさせるアニメーションを追加しました。
以下「The DO Loop」という有名なSASブログでも雪が舞い落ちるアニメーションをSASで作るプログラムを公開していて、面白いです。
「Animate snowfall in SAS」
http://blogs.sas.com/content/iml/2016/12/14/animate-snow-sas.html
今回こちらとちょっと内容被っちゃった上、私のやつの方がショボイです。。
以下が今回作ったプログラムです。一応SAS9.4で動作します。
*** ツリーとゆき描画用データ作成 ;
data SNOW; *** ツリー描画用データ作成 ; retain X1 0 Y1 1 Y2 0 Y3 -1 Y4 -2 Y5 -4; *** ゆき描画用データ作成 ; call streaminit(777); do scene=1 to 10; do X2=-3.5 to 3.5 by 0.2; SNOW = rand('uniform')*8-4; output; end; end; run; *** 描画 ; title ; options ANIMATION=START ANIMDURATION=0.5 PRINTERPATH=GIF ; ods noresults; ods printer file="出力先のパスを指定\test.gif" ; %macro ANIMATION; %do i=1 %to 10; proc sgplot data=SNOW noautolegend; where scene=&i; styleattrs wallcolor=black; symbolchar name=SNOW char='2744'x; scatter x=X1 y=Y1 / markerattrs=(symbol=starfilled size=0.8cm color=yellow); scatter x=X1 y=Y2 / markerattrs=(symbol=trianglefilled size=1cm color=green); scatter x=X1 y=Y3 / markerattrs=(symbol=trianglefilled size=2cm color=green); scatter x=X1 y=Y4 / markerattrs=(symbol=trianglefilled size=3cm color=green); scatter x=X1 y=Y5 / markerattrs=(symbol=squarefilled size=0.6cm color=brown); scatter x=X2 y=SNOW / markerattrs=(symbol=SNOW size=1.5cm color=white); inset "Happy Holidays(*ESC*){unicode '2603'x}"/ position=bottom textattrs=(color=white size=50cm); xaxis min=-3 max=3 display=none; yaxis min=-5 max=1 display=none; run; %end; %mend; %ANIMATION; ods printer close ; ods results; |
0 件のコメント:
コメントを投稿