SAS中文论坛

 找回密码
 立即注册

扫一扫,访问微社区

查看: 856|回复: 0
打印 上一主题 下一主题

用SAS实现不等比例扇形的南丁格尔玫瑰图

[复制链接]

49

主题

76

帖子

1462

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1462
楼主
 楼主| 发表于 2011-4-28 12:01:29 | 只看该作者

用SAS实现不等比例扇形的南丁格尔玫瑰图

From sxlion's blog on saslist

有朋友看到上一篇文章: 用SAS实现堆积式南丁格尔玫瑰图Nightingale Rose Diagram (上),然后就自己改造了一下,因为他的数据中并不是等比例的,因此对应的饼图并不是等比例的,不过由于对那段SAS代码理解不深,因此出现了错误。 后来我帮忙修正了下代码,照样也很好用。图如下:   主要问题在下段代码,需要构造不等角度的pie: data pies; set ex2; by index; length style function color $ 12;xsys=’3′; ysys=’3′; hsys=’3′;x=50; y=50; /* 定位圆心 */ function = ‘PIE’; style = ‘SOLID’; if first.index then do sizev = value; end;else do ; sizev + value; end;size=(&radius.*((sizev+40)/100)); /*最大半径为 &radius% */ angle = 10;angle =angle + (ang0/100)*360;     /*  起始的角度        */ rotate = (pct/100)*360;           /* 从开始到结束的角度 */ color=col; output; run; 一旦构造好合适的数据以后,就OK了。 下面即是实现上图的全部代码(好像下面格式变了),还可以直接到这里下载即可运行: %let name=rose3; FILENAME file "c:\"; data color; input fundcode $ 8-13 col $ 1-8; col="CX"||col; cards; BACAE2 600003 8F9CA8 700009 2D4978 840008 637798 940007 8395BB 040016 BACAE2 140011 8F9CA8 240005 8395BB 340001 BACAE2 440015 8F9CA8 540004 8395BB 640019 BACAE2 740012 8F9CA8 840009 2D4978 940180 637798 010190 8395BB 140002 BACAE2 210180 8F9CA8 340190 375299 440018 353535 B3B3B3 540003 ; run; data ha_rose; input FUNDcode $8. FUNDtype $12. FUND_TY_PCT FUND_HA_PCT FUND_TY_TOT FUND_TY_RANK; cards; 600003 封闭式基金   8.03 39.92 2 2 700009 封闭式基金   8.03 60.08 2 1 840008 股票型基金   27.16 38.96 5 1 940007 股票型基金   27.16 28.20 5 3 040016 股票型基金   27.16 2.68 5 4 140011 股票型基金   27.16 1.41 5 5 240005 股票型基金   27.16 28.75 5 2 340001 混合型基金 [...]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 13:25 , Processed in 0.066586 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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