SAS中文论坛

标题: SAS作图概述2 [打印本页]

作者: shiyiming    时间: 2004-5-17 18:27
标题: SAS作图概述2
[b:83f62]定类数据-饼图[/b:83f62]

饼图通常用来表示数据的部分与整体之间的比例关系。其中,整个圆的面积表示整体,各部分面积的大小对应于所占构成比的大小。
饼图一般有单一饼图和分组饼图两种。
1) 单一饼图
例4 某市1980年和1990年5种传染病发病情况。关注的指标是1980年各种传染病所占的比例。
疾病        1980年                1990年
        病例数        构成比(%)                病例数        构成比(%)
痢疾        3604        49.39                2032        37.92
肝炎        1203        16.49                1143        21.33
流脑        698        9.56                542        10.11
麻疹        890        12.20                767        14.31
腮腺炎        902        12.36                875        16.33
合计        7297        100.00                5359        100.00
SAS程序如下:
[quote:83f62]data per;
input case$ per@@;
cards;
a1 49.39 a2 16.49 a3 9.56 a4 12.20 a5 12.36
;
goptions reset=all ;
proc format;
value $ss a1='痢疾'  a2='肝炎'  a3='流脑' a4='麻疹'  a5='腮腺炎';
proc gchart;
pie case/sumvar=per;
pattern1 v=ps c=gray; pattern2 v=p2x c=gray; pattern3 v=pe c=gray;
pattern4 v=p2x135 c=gray; pattern5 v=p2n60 c=gray;
format case $ss.;
run;[/quote:83f62]

2) 分组饼图
例5 同例4数据,关注的指标是1980年、1990年各种传染病所占的比例。
SAS程序如下:
[quote:83f62]data per;
input case$ year per@@;
cards;
a1 1980 49.39        a1 1990 37.92
a2 1980 16.49        a2 1990 21.33
a3 1980 9.56        a3 1990 10.11
a4 1980 12.20        a4 1990 14.31
a5 1980 12.36        a5 1990 16.33
;
goptions reset=all ;
proc format;
value $ss a1='痢疾'  a2='肝炎'  a3='流脑' a4='麻疹'  a5='腮腺炎';
proc gchart;
pie case/sumvar=per group=year across=2;
pattern1 v=ps c=gray; pattern2 v=p2x c=gray; pattern3 v=pe c=gray;
pattern4 v=p2x135 c=gray; pattern5 v=p2n60 c=gray; format case $ss.;
run;[/quote:83f62]


[b:83f62]定序数据-累积分布图[/b:83f62]


累积分布图就是根据累积频数或累积频率,绘制的累积频数分布。
例6 某医师为研究早产、足月产及过期产者在产后一个月内泌乳量的差别,收集了如下资料:
乳量        早产        足月产        过期产        合计
无        30        132        10        172
少        36        292        14        342
多        31        414        34        479
合计        97        838        58        993
关注的指标是足月产者中乳量的累计分布。
SAS程序如下:
[quote:83f62]data a;
input K @@;
do i=1 to K;
input n@@;
do j=1 to n; value=i; output; end;
end;
drop K i n;
cards;
3 132 292 414
;
proc format; value tt 1='乳量无' 2='乳量少' 3='乳量多' ;
proc gchart;
vbar value/type=cpct cpct  discrete;
format value tt.; pattern v=x5 c=gray;
run;[/quote:83f62]


[b:83f62]分组数据-折线图[/b:83f62]


折线图也称频数多边形图,它是在直方图的基础上,把直方图顶部中点用直线连接起来,再把原来的直方图去掉。
当我们对数据所分的组数很多时,组距会越来越小,这时所绘制度折线图就会越来越光滑,逐渐形成一条光滑的曲线,这就是频数分布曲线。
折线图的类型有单折线图和多重折线图两种。折线图和条形图很类似,简单条形图对应于单折线图,分组条形图类似于多重折线图。

1) 单折线图
例7 数据同例1,关注的指标是死亡率的性比。
SAS程序:
[quote:83f62]data ratio;
input case$ ratio@@;
cards;
a1 0.69 a2 0.57 a3 0.71 a4 0.74 a5 1.06 a6 0.85 a7 0.80
;
goptions reset=all ;
proc format;
value $ss a1='肺心病' a2='风心病'  a3='高血压' a4='冠心病' a5='先心病' a6='克山病'  a7='其它';
proc gplot;
plot ratio*case; format case $ss.; symbol v=star i=join c=gray;
run;[/quote:83f62]

2) 多重折线图
例8 数据同例1,关注的指标是男、女性死亡率的比较。
SAS程序:
[quote:83f62]data ratio;
input case$ mratio fratio@@;
cards;
a1 101.9 146.8        a2 9.8 17.2  
a3 6.8 9.6   a4 4.8 6.5  
a5 3.8 3.6        a6 2.3 2.7
a7 4.5 5.6
;
goptions reset=all ;
proc format;
value $ss a1='肺心病' a2='风心病'  a3='高血压'  a4='冠心病'  a5='先心病'  
a6='克山病'  a7='其它';
proc gplot;
        plot mratio*case=1 fratio*case=2 /overlay;         format case $ss.;
symbol1 v=plus i=join c=black h=2; symbol2 v=square i=join c=gray line=2 w=4;
run;[/quote:83f62]




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2