SAS/Graph非常强大,本文主要讲一些常用且功能强大的Graph相关的过程步。
+ s: f1 t$ m& |5 N一.proc gplot命令
: ~ |" w- D5 P1. proc gplot的简单例子 proc gplot data=sashelp.shoes; plot Returns * Sales ; run; 2. 我们也可以只画出符合条件的数据的图形。 proc gplot data=sashelp.shoes; where Region in("United States", "EasternEurope"); plot Returns * Sales ; run; 3. 输出的图像都是默认的黑色的小十字,因此我们不能区分来自不同地区的数据,下面的程序就是为了解决这一问题 proc gplot data=sashelp.shoes; where Region in("United States", "EasternEurope"); plot Returns * Sales= Region; run; 这里红色的来自美国,黑色的来自东欧,当然我们也可以自己设定颜色(SAS基本颜色有:black, red, green, blue, cyan, magenta,grey, pink, orange, brown, and yellow)。 4. 设定坐标轴和所有文字和颜色 proc gplot data=sashelp.shoes; where Region in("United States", "EasternEurope"); plot Returns * Sales= Region/ caxis=blue ctext=red grid; run; 5. 如果要对网格进行更精细地设置,则要用到AUTOHREF和AUTOVREF选项。AUTOHREF中,LHREF设置水平线的线类型,CHREF设置水平线的线颜色;AUTOVREF中,LVREF设置垂直线的线类型,CVREF设置垂直线的线颜色。 proc gplot data=sashelp.shoes; where Region in("United States", "EasternEurope"); plot Returns * Sales= Region/ autohref lhref=2 chref=lime autovref lvref=5 cvref=pink caxis=blue ctext=red ; run; 6. 还可以用VAXIS和HAXIS分别设置纵轴和横轴的刻度。注意:如果某个数据超过了你指定的这个刻度,那么这个数据将不会被输出,因此在用这两个选项时要非常小心。 proc gplot data=sashelp.shoes; where Region in("United States", "EasternEurope"); plot Returns * Sales= Region/ vaxis=0 to 15000 by 5000 autohref lhref=2 chref=lime autovref lvref=5 cvref=pink caxis=blue ctext=red ; run; 7. 下面介绍一些有关Graph相关过程的全局(global)设置 title1 c=darkblue h=2.5 f=swissb "SAS/Graph " c=darkred h=3.0 f=swissbi "GPLOT Example"; axis1 label=(c=darkorange h=1.5 f=zapfbi j=r "Total Returns") offset=(0.2 in ) order=(0 to 15000 by 5000) value=(c=darkorange f=swissl ); axis2 label=(c=darkgreen h=1.5 f=zapfbi) order=(0 to 500000 by 50000) value=(f=swissl c=darkgreen); symbol1 c=red h=2 v=# ; symbol2 c=blue h=3 v=diamond; " l" B% k1 l6 y- z
proc gplot data=sashelp.shoes; where Region in("United States","EasternEurope"); plot Returns * Sales=Region / vaxis=axis1 haxis=axis2 autohref lhref=2 chref=lime autovref lvref=5 cvref=pink caxis=blue ctext=red ; run; 各绘图过程中都指定了丰富的选项来调整图形,读者可以参考有关资料或查系统的帮助。另外,在图形中也可以用TITLE语句和FOOTNOTE语句给图形加标题和脚注。为了在图形的标题、标签中也能使用汉字,老的SAS版本需要比较多的步骤,但是在Windows下的SAS 8.0以后只要很简单的语句就可以在图形中使用True Type字型的汉字,例如: goptions ftext="宋体"; 为了把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的打印驱动,具体请参考有关资料或帮助。 我们还可以设置这些Symbol是否用线连接起来,即INTERPOLATION=(I=)设置连接方式,以及WIDTH=(W=)设置线的宽度。 symbol1 c=red h=2 v=# i=sm50s w=2; symbol2 c=blue h=3 v=diamond i=splines w=2.5; / [7 O7 N( h7 i2 N2 n* \1 J E
二. Proc gchart命令 SAS proc gchart命令可以做九种图,分别是:block(方块图)、hbar(水平条图)、hbar3d(3d水平条图)、vbar(垂直条图)、vbar3d(3d垂直条图)、pie(饼图)、pie3d(3d饼图)、dount(环形图)、star(星形图)。我以绘制直方图为例:(参照《卫生统计学第5版》p27) 首先直方图是针对连续型变量而言的,说离散型变量(discrete variable)和连续性变量(continuous variable)是针对定量变量(quantitative variable)来说的。而定性变量(qualitativevariable)则是分为分类变量(catagorical variable)或名义变量(nominative variable)和有序变量(ordinal variable)或等级变量两种。 以绘制直方图为例,所用的gchart命令格式主要如下: procgchart; vbar x/type=freq space=0; run; tips:space必须标注为0,否则默认的条块间是有间隔的,就成了直条图了。直条图是针对离散型变量等的。 当然也可以用另一个命令语句来做直方图的,如下: proccapability; histogram x; run; tips:histogram只是proc capability;的一个option,所以proc capability;不能省。 现在说说个别proc gchart;vbar x下的option: sumvar:用来计算数值型变量的sum和mean。当使用了sumvar时,type必须是sum或mean,默认情况下type=sum。 type:用来指定所做直方图的纵坐标。如果sumvar没有使用的话,可以指定以下任意值:freq(默认),cfreq(cumulativefrequency),percent pct(percentage),cpercent cpct(cumulative percentage);如果使用了sumvar,就只能使用sum(默认)和mean了。 midpoints:用来指定分段的组中值。对于数值型变量,即可以指定具体的值,也指定区间(指定区间的增量increment),或者两者可以合用。如: n(1,2,3,...,n) n1 to n2 (by increment) (1,2,3,...,n) n1 to n2 (by increment) (n (1,2,...,n))
/ u* C: G2 ~# N7 {6 E+ u; S0 B$ x! q" T
x( P$ C8 R4 z8 K6 Z; P3 t" q |