数学建模社区-数学中国

标题: SAS绘图命令(让你快速入手) [打印本页]

作者: 建模人生    时间: 2015-10-7 21:05
标题: SAS绘图命令(让你快速入手)

SAS/Graph非常强大,本文主要讲一些常用且功能强大的Graph相关的过程步。

- ]8 N, V+ Y* l5 V% _! {  z

一.proc gplot命令

/ ?5 `, {- I; y# Q

1. 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;

/ T& m% T, l4 V( F2 s. y1 x! @+ n

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;


% V* |& C( y0 U/ F4 j: b

二. 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))

8 o0 t; x3 {: n6 z7 b

" Y7 s2 C! ^' ?! w+ w7 u: [/ K0 N' j% q




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5