如何在SAS中使用PROC GHART制作并排的聚类图表?

时间:2014-07-25 14:44:16

标签: sas

以下代码提供了并排图表

data a;
input Salesman $ 1-6 Year Sales;
datalines;
Bob    2009  6
Anna   2009  8
Carl   2009  9
Bob    2010  7
Anna   2010  9
Carl   2010 10
;
run;

axis1 label=none order=(0 to 30 by 10) minor=none offset=(0,0);
axis2 label=none offset=(15,15);

legend1 position=(right middle) across=1 label=none
shape=bar(.13in,.13in) order=('Carl' 'Bob' 'Anna');

pattern1 v=s c=yellow;
pattern2 v=s c=orange;
pattern3 v=s c=red;

proc gchart data=a;
vbar year / discrete type=sum sumvar=sales
raxis=axis1 maxis=axis2 width=15 space=8
noframe autoref clipref cref=graycc
subgroup=Salesman legend=legend1;
run;

然而,它将条形图绘制在另一条形图的顶部。底线我有stacked,但我需要clustered图表。

enter image description here

2 个答案:

答案 0 :(得分:3)

可以在gchart中使用,但我建议使用sgplot;它更容易。 Sanjay Patel博客的一个例子,Graphically Speaking

proc sgplot data=sashelp.prdsale;
  title 'Actual Sales by Product and Quarter';
  vbar product / response=actual group=quarter groupdisplay=cluster 
                 dataskin=gloss;
  xaxis display=(nolabel);
  yaxis grid;
  run;

注意groupdisplay=cluster,这是使其聚集的对象(而不是groupdisplay=stacked)。

对于您的数据:

proc sgplot data=a;
 vbar year/group=salesman response=sales groupdisplay=cluster;
run;

我相信gchart答案是您需要使用group语句来创建集群(而不是创建堆叠元素的subgroup)。您还需要一个功能gaxis才能工作。有关详细信息,请参阅this Robslink.com example。 (Robslink.com应该是第一个选择gchartgplot帮助的地方;在SAS Institute工作的Rob Allison维护着它并在那里有一组令人难以置信的图表,以及示例代码。 )

答案 1 :(得分:3)

PROC GCHART让我头疼!!!我第二次将Robslink.com作为SAS / GRAPH示例的良好资源。我认为你的代码几乎就在那里,尝试这个(改变VBAR使用SALESMAN而不是YEAR,并添加GROUP选项。

proc gchart data=a;
vbar /*year*/ Salesman / discrete type=sum sumvar=sales
raxis=axis1 maxis=axis2 width=15 space=8
noframe autoref clipref cref=graycc
subgroup=Salesman group=year legend=legend1;
run;