数学建模社区-数学中国

标题: SAS绘图实例(手把手教你SAS绘图) [打印本页]

作者: 建模人生    时间: 2015-10-7 21:06
标题: SAS绘图实例(手把手教你SAS绘图)

1. 散点图和曲线图GPLOT过程

例1:绘制学生信息数据的散点图与曲线图。

proc gplot data=mylib.stu;

plot math*num[选项];

symbol color=red i=jion v=none;     /*绘图的颜色,是否连线,符号等属性*/

run;

) z9 Q# B7 J3 r9 }! p, bsymbol语句的选项
  z, d: c4 X" Z, c
选项
意义
取值
V = 符号
表示点使用的符号
plus, x, star, square, diamond, triangle, hash, y, z, paw, point, dot, circle
C = 颜色
表示点的符号及连线的颜色
black, red, green, blue, cyan, magenta, gray, pink, orange, brown, yellow
CV =颜色
专指点的符号的颜色
- e/ G) f9 j+ R; g) k
H = n<单位>
指名符号的大小
单位有:cell, cm, pct, pt, in
POINTLABEL
在点的附近表明Y轴变量的值
  M1 V( R& n7 }$ r
i = 连线方式
指明连线的方式
none, join, spline, needle
CI = 颜色
专指连线的颜色
* ?6 i- h5 p+ Q! q
L = n
n为线型的序号
0 – 空白线,1 - 实线,2 – 虚线
W = n
n表示线的宽度
4 [5 D# _7 [9 K0 f4 r

6 L7 T; @  A# O# A9 O; j
8 j7 {- h* ?+ t, \! s  W9 y

2. 直方图和扇形图gchart过程

例2:绘制学生数学成绩直方图

proc gchart data=mylib.stu;

     vbar math;    /*说明分析变量用vbar*/

run;

如果把VBAR改成HBAR则条形方向变为横向。用GCHART绘制的直方图和在INSIGHT中绘制的直方图有所不同,它在横轴标的是区间的中点值,而在INSIGHT中横轴标的是区间的端点值。

例3:分别绘制男女学生数学成绩直方图

proc gchart data=mylib.stu;

     vbar math /group=sex;   

run;

例4:利用pie绘制表示频数的扇形图

proc gchart data=mylib.stu;

     pie sex /type=percent;    /*后面的type属性表示以百分数显示*/

run;
5:用block语句绘制三维直方图

proc gchart data=mylib.stu;

   block math /group=sex;

run;
GCHART过程可以使用的图形关键字及其所绘制的图形见下:
图形关键字
绘制的图形类型
图形关键字
绘制的图形类型
block
方块图
pie
饼形图
hbar
水平的条形图
pie3d
三维饼形图
hbar3d
水平的三维条形图
donut
环形图
vbar
竖立的条形图
star
星形图
vbar3d
竖立的三维条形图
# V( d; ^3 b5 O' T9 z4 J, T
6 }& T; h1 }' N; f, m) c( b8 L5 k5 Z
3 _  {& U% J7 m4 y7 Q& E
* D. _$ M5 D2 T1 L. S
3. 三维曲面和等高线图
  假设对一个二元函数z=f(x,y),我们有了x取等间隔值、y取等间隔值时z的值,这时我们可以用G3D过程绘制曲面图形,用GCONTOUR绘制曲面的等高线图。
例6:绘制一个二维正态分布曲面的图形,假设(X,Y)服从联合正态分布,其均值都是0,方差都为1,相关系数为r。
首先建立数据集:

data dnorm2;

r=0.5;

det=1-r*r;

do x=-3 to 3 by 0.3;

   do y=-3 to 3 by 0.3;

       z=1/(2*3.1415926*det)*exp(-0.5/det*(x*x+y*y-2*r*x*y));

         output;

      end;

end;

keep x y z;

run;
然后,我们就可以用G3D过程来绘制曲面图

proc g3d data=dnorm2;

   plot x*y=z;

   run;

用GCONTOUR过程可以绘制曲面对应的等高线图

proc gcontour data=dnorm2;

   plot x*y=z /nolegend autolabel;

   run;


# `5 O& v7 J2 }& P% i& |6 S* w1 o, d+ r9 V
) u  T9 q; o7 |, T) Y& V





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