数学建模社区-数学中国

标题: 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;
  `( |* b% o% o9 Y, d
symbol语句的选项

  y& @5 k, @$ p( T6 m' E4 F
选项
意义
取值
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 =颜色
专指点的符号的颜色
% b* a+ V$ s; ?1 J2 F7 L+ W, \6 q
H = n<单位>
指名符号的大小
单位有:cell, cm, pct, pt, in
POINTLABEL
在点的附近表明Y轴变量的值

3 w& O. ?( F# z) y
i = 连线方式
指明连线的方式
none, join, spline, needle
CI = 颜色
专指连线的颜色

9 A) X5 f  }, z
L = n
n为线型的序号
0 – 空白线,1 - 实线,2 – 虚线
W = n
n表示线的宽度
- N, O# y5 N/ P) z8 M% o% Q. k! f
) G$ S! S  i8 D" r! R
7 k( f  h- @+ I5 |% f: u

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
竖立的三维条形图

( G" E% Z+ `+ [9 N& E& E9 u/ [
0 t" `9 @4 z; T

' J- D# I; h- K9 x

9 L% @: Z  V# J: s1 n, \2 V
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;


0 j% J! d7 r$ v. \
, p, i6 a7 h0 n" |: D( O
8 M/ v7 [/ N  {% ~




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