802 Views
March 31, 24
スライド概要
[第3回大阪sas勉強会]淺井 友紀
SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです
折れ線グラフの出力を工夫する
折れ線Graph出すときに困ること • • • • • メモリラベル改行したい 上付き/下付き文字を使いたい 補助線を引っ張りたい 群ごとに折れ線をずらして出力したい 標準偏差をエラーバーとしたい 体裁上の要求が多い
目標のグラフ
データ data hoge ; call streaminit(111) ; do G = 1 , 2 ; do _ID = 1 to 3 ; do X = 1 to 6 ; Y = rand("uniform") * 10 ; if X = 5 then Y = . ; output ; end ; end ; end ; run ;
凡例用文字列
%sganno ;
data anno1 ;
%sgtext(label = "--■--" , drawspace = "GRAPHPERCENT" ,
textcolor = "black" , x1 = 20 , y1 = 90) ;
%sgtext(label = "α(*ESC*){sup '2'}A群" , drawspace = "GRAPHPERCENT" ,
textcolor = "black" , x1 = 27 , y1 = 90) ;
%sgtext(label = "―●―" , drawspace = "GRAPHPERCENT" ,
textcolor = "black" , x1 = 20 , y1 = 85) ;
%sgtext(label = "α(*ESC*){sup '2'}B群" , drawspace = "GRAPHPERCENT" ,
textcolor = "black" , x1 = 27 , y1 = 85) ;
run ;
グラフ_初期設定 proc sgplot data = HOGE sganno = ANNO1 noautolegend ; refline 4 / axis = y lineattrs=(pattern=34 color=gray ) ; styleattrs datasymbols=(circlefilled squarefilled ) datacontrastcolors=(black) datalinepatterns=(solid dash) ;
グラフ_折れ線の描画 vline X / response = Y break group = G groupdisplay = cluster clusterwidth = 0.5 markers stat = mean limitstat = stddev limits = both ;
グラフ_軸の設定
xaxis
type = discrete
fitpolicy = splitalways
splitchar = "*"
values = (1 to 4 by 1 , 6 )
valuesdisplay = ("ベース*ライン" "2" "3" "4" "最終解析*時点")
label = "α(*ESC*){unicode '00B2'x}の推移(*ESC*){unicode '0A'x}最終解析含む"
;
yaxis
label = "Y"
values = (-2 to 12 by 2 )
;
run ;
Sgtextの補足 %sgtext(label = "出力したい文字列" , drawspace = "出力する場所の指定" , textcolor = "文字列の色" , x1 = 出力位置のX座標 , y1 = 出力位置のY座標 , rotate = 文字列の角度(0-360) , textfont = 文字列のfont , );
Drawspace引数 • どこのareaを基準とす るかを指定する引数 • LAYOUTarea > GRAPTH area > DATA areaの順に areaが大きくなる – (LAYOUT areaは他の areaを全て含み, GRAPTHareaはDATAarea を含む)
Drawspace引数 • DATAPERCENT /DATAPIXEL /DATAVALUE /GRAPHPERCENT /GRAPHPIXEL /LAYOUTPERCENT /LAYOUTPIXEL のいずれかを指定する. – DATAVALUEを指定すると,グラフ軸の値を参照して座 標を指定する(軸の外の値は指定できなくなる) – GRAPHPERCENTを指定すると,GRAPTHareaの下端と 左端が0,上端と右端が100として座標を指定する(0100以外の値は指定できなくなる) – DATAPERCENTを指定すると,グラフ原点が0,上端と 右端が100として座標を指定する
参考文献 • SASのdocument <http://documentation.sas.com/?cdcId=pgmsascdc&cdcVer sion=9.4_3.3&docsetId=pgmmvaov&docsetTarget=pgmsaso v.htm&locale=ja> • 高浪洋平,舟尾暢男. もしも,SASのSGPLOTとRの GGPLOT2を比較したら…. 第1回ナニワデータサイエンス 研究会(2016) • ユニコード一覧 <http://www.asahi-net.or.jp/~ax2skmtn/ref/unicode/u0080.html#u00b2>