SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 1180|回复: 9
打印 上一主题 下一主题

做sas条形图时,如何根据条形的长短自动排序...

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-10-8 12:01:15 | 只看该作者

做sas条形图时,如何根据条形的长短自动排序...

如标题,不知道有没有什么选项之类的,做出的条形图是根据pf的大小从左到右,
或从上到下的顺序显示出来的,而不是根据tm的顺序来显示的...测试数据集如下:
data test;
input tm $ pf;
cards;
VAR00001    4.49
VAR00002    3.61
VAR00003    4.54
VAR00004    4.66
VAR00005    5.38
VAR00006    4.43
;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
沙发
 楼主| 发表于 2011-10-8 12:14:35 | 只看该作者

Re: 做sas条形图时,如何根据条形的长短自动排序...

把pf的值显示在条形柱上边的话更好...
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
板凳
 楼主| 发表于 2011-10-8 13:22:09 | 只看该作者

Re: 做sas条形图时,如何根据条形的长短自动排序...

不可以先排序吗?显示值的话可以考虑ANNOTATE
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
地板
 楼主| 发表于 2011-10-8 14:17:36 | 只看该作者

Re: 做sas条形图时,如何根据条形的长短自动排序...

[quote="yugao1986":fxwlh78r]不可以先排序吗?显示值的话可以考虑ANNOTATE[/quote:fxwlh78r]
先排序不行,试过了...
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
5#
 楼主| 发表于 2011-10-12 03:51:02 | 只看该作者

Re: 做sas条形图时,如何根据条形的长短自动排序...

可以参考以下程序.遗憾的是这些过程好象无法直接采用顺序等选项.京剧
[code:2ixuz7nz]proc sort; by pf tm;
data test;
        retain fmtname 'tmFmt';
        set test;
        start ++1;
        label =tm;
run;
proc format cntlin =test(keep =fmtname start label);
run;
proc sgplot data =test;
        vbar start/response =pf datalabel;
        format start tmFmt.;
        yaxis label ='pf';
        xaxis label ='tm';
run;
quit;[/code:2ixuz7nz]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
6#
 楼主| 发表于 2011-10-12 18:42:53 | 只看该作者

Re: 做sas条形图时,如何根据条形的长短自动排序...

谢谢京剧版主,我在运行时后,参数datalabel参数不可识别,请求怎么办呢。。。用的9.2版的,把datalabel去掉后,系统不出错,但没图形
67   proc sgplot data =test;
68      vbar start/response =pf datalabel;
                                ---------
                                22
                                202
ERROR 22-322: 语法错误,期望下列之一: ;, ALPHA, BARWIDTH, FILL, FILLATTRS, FREQ, GROUP, LEGENDLABEL, LIMITS, LIMITSTAT,
              MISSING, NAME, NOFILL, NOOUTLINE, NUMSTD, OUTLINE, RESPONSE, STAT, TRANSPARENCY, URL, WEIGHT.
ERROR 202-322: 该选项或参数不可识别,将被忽略。
69      format start tmFmt.;
70      yaxis label ='pf';
71      xaxis label ='tm';
72   run;
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
7#
 楼主| 发表于 2011-10-12 20:07:22 | 只看该作者

Re: 做sas条形图时,如何根据条形的长短自动排序...

Very interesting.
For VBAR/HBAR statement, version 9.2 is high enough. I think that came with SGPLOT while DATALABEL option may need 9.2.2.

JingJu
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
8#
 楼主| 发表于 2011-10-13 12:39:45 | 只看该作者

Re: 做sas条形图时,如何根据条形的长短自动排序...

[quote="jingju11":20izzobv]Very interesting.
For VBAR/HBAR statement, version 9.2 is high enough. I think that came with SGPLOT while DATALABEL option may need 9.2.2.

JingJu[/quote:20izzobv]
就是说9.2.2版本一下的就不好实现这个了,真悲催呀... <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
9#
 楼主| 发表于 2011-10-30 17:54:05 | 只看该作者

Re: 做sas条形图时,如何根据条形的长短自动排序...

有时候还是老PROC给力点,很多option可用,SG系列是快餐,老的SAS/GRAPH是大餐,哈哈
试试这个,9.2 TM1 下测试通过:
[code:16mp1jtn]
data test;
        input tm $ pf;
cards;
VAR001  4&#46;49
VAR002  3&#46;61
VAR003  5&#46;46
VAR004  4&#46;66
VAR005  5&#46;38
VAR006  4&#46;43
;
run;

axis1  label=(angle=90  &quot;PF Values&quot;);
proc gbarline data=test;
        bar tm/discrete  sumvar=pf  descending  inside=sum raxis=axis1;
        format  pf 7&#46;2;
        label tm=&quot;&quot;;
run;
goptions reset=all;
[/code:16mp1jtn]
<!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->
[quote=&quot;sas_studying&quot;:16mp1jtn][quote=&quot;jingju11&quot;:16mp1jtn]Very interesting.
For VBAR/HBAR statement, version 9.2 is high enough. I think that came with SGPLOT while DATALABEL option may need 9.2.2.

JingJu[/quote:16mp1jtn]
就是说9.2.2版本一下的就不好实现这个了,真悲催呀... <!-- s:( --><img src="{SMILIES_PATH}/icon_sad.gif" alt=":(" title="Sad" /><!-- s:( -->[/quote:16mp1jtn]
回复 支持 反对

使用道具 举报

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
10#
 楼主| 发表于 2011-10-31 16:40:24 | 只看该作者

Re: 做sas条形图时,如何根据条形的长短自动排序...

再次感谢两位版主@jingju,@oloolo的解答...very thanks!!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-7 05:56 , Processed in 0.127109 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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