612 Views
March 29, 24
スライド概要
[第2回大阪sas勉強会] 淺井 友紀
SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです
SGANNO用のマクロの紹介
ANNOTATEって Graph上に自由に文字や線等を入れる 注釈 グラフ外の表 オプションで指定できない場所への凡例 など 2
SGPLOTでのANNOTATE これまで data anno1 ; x1 = 2; y1 = 1; x2 = 2; y2 = 4; drawspace = "DATAVALUE" ; linecolor = "blue" ; function = "LINE" ; run ; データステップで指定 複数のannotateを使用するとき, どこまでが一区切りかが分かりにくい 3
SGPLOTでのANNOTATE これから %SGANNO_HELP ; data anno2 ; %sgline(x1 = 2,y1 = 1 , x2 = 2,y2 = 2 , drawspace= "DATAVALUE" , linecolor = "black") ; run ; 専用のマクロで指定 複数のannotateをつかっても,マクロ単位で区別できる Helpがみやすい(後述) 4
MACROによるANNOTATEの例(準備) ANNOTATEマクロを有効化 %SGANNO データセット準備 data DS1; call streaminit(777); do TIME=0 to 5; VAL=int(rand('uniform')*100); output; end; run; 5
MACROによるANNOTATEの例(アノテート) data anno2 ; %sgline(x1 = 0,y1 = 50 , x2 = 5,y2 = 50 , drawspace= “DATAVALUE” , linecolor = "black") ; %sgtext(label="グラフ外" , drawspace= “GRAPHPERCENT", textcolor="red",x1=20,y1=5,justify="LEFT") ; %sgtext(label="グラフ中" , drawspace="DATAVALUE", textcolor="blue",x1=2,y1=55,justify="LEFT") ; %sgarrow(x1=1,y1=50 ,x2=3,y2=70 , drawspace="DATAVALUE") ; %sgarrow(x2=2,y2=90,drawspace="DATAVALUE",direction="BOTH"); %sgoval(height=3,width=5,x1=5,y1=75,drawspace="DATAVALUE"); run ; 6
MACROによるANNOTATEの例(GRAPH描画) proc sgplot data = DS1 sganno = anno2 ; series x = TIME y = VAL ; run ; Sgannoオプションにアノテートを定義したデータセットを指定 結果は次スライドへ 7
結果 8
実装されたマクロの一覧 以下を実行すると,ログに一覧が示される %SGANNO_HELP ; 9
マクロのHELP %SGANNO_HELP(マクロ名) ; %SGANNO_HELP(SGTEXT) ; %SGANNO_HELP(SGLINE) ; 10
一覧 %SGANNO %SGANNO_HELP ; 矢印を引く %SGANNO_HELP(SGARROW) ; 画像を挿入する %SGANNO_HELP(SGIMAGE) ; 線を引く %SGANNO_HELP(SGLINE) ; 楕円を書く %SGANNO_HELP(SGOVAL) ; %SGANNO_HELP(SGPOLYCONT) ; %SGANNO_HELP(SGPOLYGON) ; %SGANNO_HELP(SGPOLYLINE) ; %SGANNO_HELP(SGRECTANGLE) ; テキストを書く %SGANNO_HELP(SGTEXT) ; %SGANNO_HELP(SGTEXTCONT) ; 11
参考資料 <http://documentation.sas.com/?docsetId=grstatp roc&docsetTarget=n1fn1k6glbw4oyn1k2a3p7ukk 8cs.htm&docsetVersion=9.4&locale=ja> 12