SAS中文论坛

标题: 求助:画柱状图的问题 另一问题:柱状图排序 [打印本页]

作者: shiyiming    时间: 2009-11-12 21:54
标题: 求助:画柱状图的问题 另一问题:柱状图排序
求助:画柱状图的问题

    下列一作图程序:

data plot;
input n i f;
cards;
1 1 1
1 2 5
1 3 10
1 4 3
1 5 9
1 6 3
2 1 5
2 2 8
2 3 16
2 4 4
2 5 12
2 6 6
;
run;
proc gchart data=plot;
vbar i /discrete
sumvar=f
subgroup=n
space=0
gspace=5 ;
run;
quit;

求助:
当变量 i  相等时,f 对应的两个值,在图上叠加了。
(即当 i  是 1  时, f 的两个对应值 1、5   在图上叠加后柱高是6。)

有没有办法,让图叠加但 f 值不相加, f 值反映的是真实值(也就是总柱高是5,里面有另一柱高1)
再在图上分别标出各自的值。

谢谢!!
作者: shiyiming    时间: 2009-11-13 00:30
标题: Re: 求助:画柱状图的问题
死猪头
作者: shiyiming    时间: 2009-11-13 15:37
标题: Re: 求助:画柱状图的问题
谢谢!!!
作者: shiyiming    时间: 2009-11-16 11:20
标题: Re: 求助:画柱状图的问题
根据楼上高人的思路,写了下面一程序,但作出的图没有排序,再请教高人。
data a1;
input d_m $ ea cp;
cards;
0a 1.2 35.3
0b 0.2 12.95
0c 3.7 23.5
0d 0.9 15.31
1a 0.5 19
1b 1.3 37.2
1c 0.7 8.92
2a 0.2 3
2c 0.8 13
3a 1.7 31.12
3b 0.47 22.3
3c 0.9 15.3
4a 6.12 19.23
4b 0.53 12.79
;
run;
proc sort data=a1 out=a2;
by descending  ea;
run;
data a3(keep=d_m i ea_cp);
set a2;
array as1{2} ea cp;
do i=1 to 2;
ea_cp=as1{i};
output;
end;
run;
data a4(drop=d_m i ea_cp);
   length text $ 8.;
   retain function 'label' when 'a' xsys ysys '2' hsys '3' size 1.5;
   set a3;
   midpoint=d_m; subgroup=i;  
   text=cats(ea_cp);
  run;
goptions reset=all   DEVICE=emf  GSFMODE=REPLACE cback=gray ;  
axis1 label=(justify=left 'd_m') value =( h=1.5 font="宋体") style=0;
axis2 label=none value=(tick=3 '')  minor=none major=none  width=1 ;
pattern1 value=solid color=cyan;
pattern2 value=solid color=magenta;
proc gchart data=a3;
   note;  
   hbar d_m / sumvar=ea_cp discrete nostat subgroup=i space=0.5
              maxis=axis1 raxis=axis2 nolegend annotate=a4;
run;
quit;
问题: 我原想画出的图是按照数据集a2中ea的倒序排列(即:图是按照ea由大向下排列)。

      可现在画出的图是按照d_m的顺序排列。

请教:应该怎样改??        谢谢!!!!
作者: shiyiming    时间: 2009-11-16 14:12
标题: Re: 求助:画柱状图的问题 另一问题:柱状图排序
把您喜爱的顺序加到适当的AXIS即可。
[code:3ufpu6an]
proc sql noprint;
        select cats("'",d_m,"'") into :zhutou separated by " " from a2;
quit;
axis1 label=(justify=left 'd_m') value =( h=1.5 font="ËÎÌå") style=0 order=(&zhutou);
[/code:3ufpu6an]
另外,“柱状图”这样的字眼让我反胃!咋说呢,就跟看到“大公鸡”商标一样!
作者: shiyiming    时间: 2009-11-16 23:54
标题: Re: 求助:画柱状图的问题 另一问题:柱状图排序
谢谢,指教!!

另再请教一个问题?

  如何将图中标定柱高的数字旋转90度。
作者: shiyiming    时间: 2009-11-17 09:39
标题: Re: 求助:画柱状图的问题 另一问题:柱状图排序
在a4里加angle变量。
作者: shiyiming    时间: 2009-11-17 18:30
标题: Re: 求助:画柱状图的问题 另一问题:柱状图排序
OK, 谢谢!!!!1




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