盒鬚圖(Box Plot)亦稱為盒型圖。在SAS裡面盒鬚圖的說明可到SAS官網說明文件查看,簡單說盒子底部為Q1(第25百分位數),盒子內部中線為中位數,盒子上端為Q3(第75百分位數),盒子中間的符號通常為平均值。天線一般來說是1.5倍四分位距(intra-quartile range, IQR)中最小或最大值,而在天線外面的點一般為極端值(outlier)。
盒鬚圖如下:
先建立範例檔案,於【程式01】
/*程式01*/
data vbar_1; do i=1 to 200; do hr=0 to 23; do week=1 to 7; if 0<=hr<=1 then time=normal (1)*(55)+55+mod(hr,5); if 2<=hr<=5 then time=normal (1)*(65)+65+mod(hr,5); if 5<=hr<=6 then time=normal (1)*(45)+45+mod(hr,5); if 6<=hr<=20 then time=normal (1)*(35)+35+mod(hr,5); if 21<=hr<=23 then time=normal (1)*(40)+40+mod(hr,5); if 10<=time<=250 and uniform(1) >=(0.3) then output; end; end; end;
run; |
【程式02】盒型圖(沒有天線的)主要程式。
/*程式02*/ ods html gpath = "e:\temp\" image_dpi=300 style=htmlblue;
ods graphics on / reset=all reset=index noborder height=6in width =6in antialiasmax=10000 imagename = "圖1" imagefmt =png ;
ods results off; proc sgplot data=vbar_1 ; format time 5.1; vbox time /category=hr dataskin=pressed fillattrs=(color=red) nooutliers nocaps whiskerattrs=(thickness=0) meanattrs=(symbol=diamondfilled color=red) medianattrs=(pattern=1 thickness= 3 color=darkred) connect=mean connectattrs=( pattern=1 color=lightred thickness= 1) transparency=0.3 ; styleattrs backcolor=white wallcolor=white ; refline 60 120 180 240/ lineattrs=(pattern=2 color=gray thickness=0.4%) axis=y transparency=0.5; xaxis label="小時" valueattrs=(size=7);; yaxis label="秒數" values=(20 to 130 by 10 ) valueattrs=(size=7); title j=c h=14pt '出動時間統計'; run;
ods results on; title;quit;
|
「ods html」和「ods graphics」可讓統計圖直接輸出為檔案。
「vbox」為繪製(垂直)盒型圖主要語法。如果要改為水平盒型圖可用hbox。dataskin整體圖形的樣式;fillattrs設定盒子的填滿的顏色;nooutliers為不要繪極端值; nocaps不要繪天線的帽子;whiskerattrs設定天線樣式(這裡讓天線不要畫出來); meanattrs平均值的樣式;medianattrs中位數的樣式;connect繪製連接線,把平均值或中位數的值相連;connectattrs連結線的樣式;transparency設定整體圖形的透明度(0:不透明,1;完全透明)。
「refline」繪製參考線。於Y軸數值為60、120、180、240的位置繪製參考線。
「xaxis」修改X軸。
「yaxis」修改Y軸。
「title」設定標題文字和格式。
【程式03】盒鬚圖主要程式。
/*程式03*/
ods html gpath = "e:\temp\" image_dpi=300 style=htmlblue;
ods graphics on / reset=all reset=index noborder height=6in width =6in antialiasmax=10000 imagename = "圖2" imagefmt =png ;
ods results off; proc sgplot data=vbar_1 ; format time 5.1; vbox time /category=hr dataskin=pressed fillattrs=(color=red ) whiskerattrs=(pattern=1 color=lightred thickness=1 ) outlierattrs=(symbol=circle size=3 color=verylightred) meanattrs=(symbol=diamondfilled color=red) medianattrs=(pattern=1 thickness= 3 color=darkred) connect=mean connectattrs=( pattern=1 color=lightred thickness= 1) transparency=0.3 ; styleattrs backcolor=white wallcolor=white ; refline 60 120 180 240/ lineattrs=(pattern=2 color=gray thickness=0.4%) axis=y transparency=0.5; xaxis label="小時" valueattrs=(size=7); yaxis label="秒數" values=(0 to 260 by 20 ) valueattrs=(size=7); title j=c h=14pt '出動時間統計'; run;
ods results on; title;quit;
|
「vbox」為繪製盒鬚圖的主語法。whiskerattrs設定天線樣式;outlierattrs設定極端值的樣式;meanattrs平均值的樣式;medianattrs中位數的樣式;connect繪製連接線;connectattrs連結線的樣式;transparency設定整體圖形的透明度。
-------相關連結------
沒有留言:
張貼留言