From:http://storage.chinaunix.net/stor/raid/2008/05/22/1114807.shtml html
SAS能夠把存貯在SAS數據集中的數據以圖形的方式形象直觀地顯示出來。在SAS/GRAPH 模塊的支持下,SAS能夠做散點圖、曲線圖、直方圖、扇面圖、三維曲面圖、等高線圖、地圖,等等。ide
散點圖和曲線圖
用GPLOT過程繪製散點圖和曲線圖。好比,咱們要繪製SASUSER.GPA中SATV對SASM的散點圖,只要用此程序:
proc gplot data=sasuser.gpa;
symbol i=none v=star;
plot satv*satm;
run;
結果顯示了一個GRAPHICS窗口,繪出了以SATV爲縱軸、以SATM爲橫軸的散點圖(見圖 1)。在GPLOT過程當中,用PLOT語句指定繪圖用的變量。SYMBOL語句是一個全程語句,指定繪圖用的連線方式、顏色、散點符號、大小,等等。SYMBOL語句能夠帶編號,如SYMBOL2,SYMBOL3 等,不帶編號的至關於SYMBOL1。
爲了繪製連線,只要在SYMBOL語句中指定I=JOIN。好比,對SASUSER.AIR數據集,以DATETIME 爲橫軸、以CO爲縱軸繪曲線圖圖,能夠用:
proc gplot data=sasuser.air;
symbol i=join v=star;
plot co*datetime;
run;
見圖 2。若是不想在圖中出現散點符號能夠在SYMBOL語句中用V=NONE。
爲了在圖中做幾條曲線,只要在PLOT語句中指定多個因變量(自變量通常應爲同一個),並使用OVERLAY選項,如:
proc gplot data=sasuser.air;
symbol1 i=join v=none line=1 ;
symbol2 i=join v=none line=2 ;
plot co*datetime=1 so2*datetime=2 / overlay;
run;
其中咱們指定了兩個SYMBOL語句,第一個SYMBOL語句指定了LINE=1,表示線型爲實線,第二個SYMBOL語句指定了LINE=2表示線型爲虛線。咱們在PLOT語句中用了「縱軸*橫軸= n」的格式來指定曲線使用哪個SYMBOL語句的規定來畫, n對應於SYMBOL語句的序號。
SYMBOL語句的I=選項還能夠取SPLINE表示在散點間鏈接連樣條曲線,取I=SM nn( nn取00-99值)表示繪製樣條曲線但能夠不通過散點, nn值表明曲線光滑性與擬和度的折中。取I=NEEDLE繪製每一個點到橫軸的垂線。取I=RL 繪製線性迴歸直線,I=RQ爲二次曲線,I=RC爲三次曲線,後面加上CLI nn如RLCLI95表示在迴歸直線以外繪製預測值的95%置信限曲線,好比:
proc gplot data=sasuser.gpa;
symbol i=rlcli95 v=star;
plot satv*satm;
run;
見圖 3。GPLOT過程還能夠有其它靈活的用法,能夠參考有關資料或用SAS系統菜單「Help | Extended Help」,從中找「SAS System Help: Main Menu | Graphics | GPLOT」。
直方圖和扇形圖
用GCHART過程繪製直方圖、扇形圖、三維直方圖等表示變量分佈的圖形。例如,要繪製SASUSER.GPA中GPA的分佈直方圖,只要用:
proc gchart data=sasuser.gpa;
vbar gpa;
run;
其中繪圖用的變量用VBAR語句給出。圖形見圖 4。若是把VBAR改爲HBAR則條形方向變爲橫向。用GCHART繪製的直方圖和在INSIGHT中繪製的直方圖有所不一樣,它在橫軸標的是區間的中點值,而在INSIGHT中橫軸標的是區間的端點值。
能夠繪製分組的直方圖,例如按性別分組繪製兩個直方圖並排放置,能夠用以下程序: proc gchart data=sasuser.gpa;
vbar gpa / group=sex;
run;
結果見圖 5。
在GCHART中用PIE語句繪製表示頻數的扇形圖,例如: proc gchart data=sasuser.gpa;
pie sex;
run;
結果見圖 6。若是想顯示百分比值,只要在PIE語句中加入TYPE=PERCENT選項,如「pie sex / type=percent;」。
GCHART過程還能夠用BLOCK語句繪製三維直方圖。例如,在SASUSER.HOUSES有各類房子的狀況,其中BEDROOMS表示臥室個數,STYLE表示房子的式樣,都是分類變量,咱們能夠用以下程序畫出反映臥室個數和房子式樣的聯合分佈的三維直方圖:
goptions hpos=90 vpos=70;
proc gchart data=sasuser.houses;
block style / group=bedrooms;
run;
三維曲面圖和等高線圖
假設對一個二元函數z=f(x,y),咱們有了x取等間隔值、y取等間隔值時z的值,這時咱們能夠用G3D過程繪製曲面圖形,用GCONTOUR繪製曲面的等高線圖。
例如,咱們想繪製一個二維正態分佈曲面的圖形,假設(X,Y)服從聯合正態分佈,其均值都是0,方差分別爲1和a,相關係數爲r。這時,咱們能夠獲得(X, Y)的聯合密度函數的公式爲:
咱們能夠在一個網格上計算曲面的值:
data dnorm2;
a=2;
a2=sqrt(a);
r=0.5;
det=a*(1-r*r);
do x=-3 to 3 by 0.3;
do y=-3*a2 to 3*a2 by 0.3*a2;
z=1/(2*3.1415926*det)*exp(-0.5/det*(a*x*x + y*y - 2*r*a2*x*y));
output;
end;
end;
keep x y z;
run;
而後,咱們就能夠用G3D過程來繪製曲面圖: proc g3d data=dnorm2;
plot x*y=z;
run;
見圖 8。用GCONTOUR過程能夠繪製曲面對應的等高線圖,例如: proc gcontour data=dnorm2;
plot x*y=z;
run;
見圖 9。
圖形的調整與輸出
各繪圖過程當中都指定了豐富的選項來調整圖形,讀者能夠參考有關資料或查系統的幫助。另外,在圖形中也能夠用TITLE語句和FOOTNOTE語句給圖形加標題和腳註。爲了在圖形的標題、標籤中也能使用漢字,老的SAS版本須要比較多的步驟,可是在Windows下的SAS 8.0之後只要很簡單的語句就能夠在圖形中使用True Type字型的漢字,例如: goptions ftext="宋體";
proc gplot data=sasuser.class;
title "試驗FONTS的漢字功能";
plot weight * height;
label weight = "體重" height="身高";
run;
見圖 10。
爲了把SAS/GRAPH繪製的圖形保存爲兼容的圖形文件,只要在顯示某一頁圖形輸出時,選「File | Export」菜單,在出現的輸入文件名的窗口選擇適當的文件類型,如BMP、WMF 、JPEG、PS,等等。本講義中的SAS/GRAPH圖形就是從SAS中用「File | Export」輸出爲WMF 文件調入MS Word的結果。
要打印SAS/GRAPH生成的圖形,只要選「File | Print」。這樣用Windows的打印驅動程序與SAS/GRAPH的圖形驅動配合來打印。另外,SAS/GRAPH模塊還提供了許多種打印機的獨立的驅動程序,能夠不依賴於Windows的打印驅動,具體請參考有關資料或幫助。