SAS中文论坛

标题: 用SAS实现不等比例扇形的南丁格尔玫瑰图 [打印本页]

作者: shiyiming    时间: 2011-4-28 12:01
标题: 用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 混合型基金 [...]




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