SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1423|回复: 3
打印 上一主题 下一主题

sas作图

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2007-4-17 23:52:28 | 只看该作者

sas作图

最近想用sas绘制统计图,不知哪位高手可以指点一下,所有的统计图都想通过sas来实现。
在此先谢过!!!
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2007-4-18 00:14:46 | 只看该作者

网上一搜就有了

虽然我是低手 看到你这种人也很生气  太懒了吧
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2007-4-23 23:55:39 | 只看该作者

sas作图

我查书和文献,然后编辑了以下的作图程序。

/*条图*/
data sbg;
input city$ n@@;
cards;
a 45 b 24 c 32 d 24 e 22
;
goptions reset=all ;
title 'simple bar graph';
proc gchart;
vbar city/sumvar=n patternid=midpoint;
run;

data gbg;
input age$ gender$ ratio@@;
cards;
age1 m 14.72 age1 f 12.80
age2 m 3.18 age2 f 0.74
age3 m 4.52 age3 f 1.07
age4 m 9.09 age4 f 4.89
age5 m 17.79 age5 f 17.35
age6 m 29.52 age6 f 28.67
age7 m 40.66 age7 f 43.45
;
goptions reset=all ;
proc format;
value $ss age1='15-24岁' age2='25-34岁' age3='35-44岁' age4='45-54岁' age5='55-64岁'
age6='65-74岁' age7='75岁及以上';
value $qq f='男性' m='女性';
title 'grouping bar graph';
proc gchart;
where gender in ('m', 'f');
vbar gender/group=age sumvar=ratio patternid=midpoint;
format age $ss. gender $qq.;
pattern1 v=l5 c=black; pattern2 v=x5 c=black;
run;



data sebg;
input age$ gender$ ratio@@;
cards;
age1 m 14.72 age1 f 12.80
age2 m 3.18 age2 f 0.74
age3 m 4.52 age3 f 1.07
age4 m 9.09 age4 f 4.89
age5 m 17.79 age5 f 17.35
age6 m 29.52 age6 f 28.67
age7 m 40.66 age7 f 43.45
;
goptions reset=all ;
proc format;
value $ss age1='15-24岁' age2='25-34岁' age3='35-44岁' age4='45-54岁' age5='55-64岁'
age6='65-74岁' age7='75岁及以上';
value $qq f='男性' m='女性';
title 'segmenting bar graph';
proc gchart;
where gender in ('m', 'f');
vbar age/subgroup=gender sumvar=ratio;
format age $ss. gender $qq.;
pattern1 v=x2 c=black; pattern2 v=s c=black;
run;

/*百分条图*/
data perbg;
input year$ disease$ p@@;
cards;
y1 d1 17.18 y1 d2 3.81 y1 d3 0.37 y1 d4 50.24 y1 d5 28.40
y2 d1 19.01 y2 d2 3.27 y2 d3 0.47 y2 d4 51.49 y2 d5 25.76
;
goptions reset=all ;
proc format;
value $y y1='2004年' y2='2005年';
value $d d1='指定传染病(包括性病)' d2='严重传染病' d3='精神病' d4='生殖系统疾病' d5='内科系统疾病';
title 'percent bar graph';
proc gchart;
hbar year/subgoup=disease sumvar=p;
format year $y. disease $d.;
run;

/*圆图*/
data pc;
input disease$ p@@;
cards;
d1 50.24 d2 28.40 d3 21.36
;
goptions reset=all ;
proc format;
value $d d1='生殖系统疾病' d2='内科系统疾病' d3='传染病及其他';
title 'pie chart';
proc gchart;
pie disease/sumvar=p;
pattern1 v=ps c=black; pattern2 v=p2x c=black; pattern3 v=pe;
format disease $d.;
run;

/*散点图*/
data sp;
input year m@@;
cards;
1998 22.3 1999 22.2 2000 22.8 2001 21.4 2002 20.7 2003 18.0 2004 15.4
;
goptions reset=all;
title 'scatter plot';
proc gplot;
plot m*year/vaxis=15 to 25 by 2
haxis=1997 to 2005 by 1
;
run;


data sp2;
input year gender$ m@@;
cards;
1998 m 10.0 1999 m 9.5 2000 m 9.5 2001 m 10.6 2002 m 9.7 2003 m 8.9 2004 m 8.4
1998 f 25.1 1999 f 25.1 2000 f 25.8 2001 f 23.9 2002 f 23.2 2003 f 20.1 2004 f 17.3
;
goptions reset=all;
title 'scatter plot2';
symbol1 v='f' c=black;
symbol2 v='m' c=black;
proc gplot;
plot m*year=gender
;
run;




/*线图和半对数线图*/
data sp;
input year m@@;
m1=log(m);
cards;
1998 22.3 1999 22.2 2000 22.8 2001 21.4 2002 20.7 2003 18.0 2004 15.4
;
proc sort data=sp out=dg;
by year;
run;
goptions reset=all;
title 'diagram';
symbol i=join l=1 v=dot;
proc gplot data=dg;
plot m*year m1*year
;
run;


data sp2;
input year gender$ m@@;
m1=log(m);
cards;
1998 m 10.0 1999 m 9.5 2000 m 9.5 2001 m 10.6 2002 m 9.7 2003 m 8.9 2004 m 8.4
1998 f 25.1 1999 f 25.1 2000 f 25.8 2001 f 23.9 2002 f 23.2 2003 f 20.1 2004 f 17.3
;
proc sort data=sp2 out=dg2;
by year;
run;
goptions reset=all;
goptions csymbol=black ftext=zapf;
title 'diagram2';
symbol1 i=join v='f';
symbol2 i=join v='m';
proc gplot;
plot m*year=gender;
plot m1*year=gender;
run;


/*直方图*/
data hg;
input f@@;
cards;
13.9 9.5 10.3 6.8 7.6 9.0 6.9
10.1 8.9 11.3 10.0 6.5 8.5 7.8
6.3 7.2 6.6 11.8 11.3 12.6 12.0
11.4 10.1 10.8 5.1 3.6 9.1 6.8 3.8
;
proc means min max;
run;
data hg1;
set hg;
gr=1.5;
f1=gr*int(f/gr);
run;
proc freq data=hg1;
tables f1;
run;
proc gchart data=hg1;
vbar f1/discrete type=freq space=0
;
run;

/*箱式图*/
data bg;
do group=1 to 2;
do i=1 to 29;
input f@@;
output;
end;end;
cards;
19.3 14.2 11.2 17.5 11.8 15.0 8.9
14.0 11.4 16.6 15.9 9.9 14.4 9.3 6.9
11.1 8.6 15.4 15.1 17.4 16.8 16.5 13.6
14.8 8.1 5.7 10.5 8.1 7.1
13.9 9.5 10.3 6.8 7.6 9.0 6.9 10.1 8.9
11.3 10.0 6.5 8.5 7.8 6.3 7.2 6.6 11.8 11.3
12.6 12.0 11.4 10.1 10.8 5.1 3.6 9.1 6.8 3.8
;
run;
symbol i=boxt bwidth=6 c=black;
axis1 offset=(1,1) cm minor=none;
proc gplot data=bg;
plot f* group / haxis=axis1;
run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2007-4-25 16:04:47 | 只看该作者

@

[color=red:b7bd4][size=200:b7bd4]Good Job![/size:b7bd4][/color:b7bd4]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|SAS中文论坛  

GMT+8, 2025-6-13 19:50 , Processed in 0.121969 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表