以下代码提供了并排图表
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
图表。
答案 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应该是第一个选择gchart
和gplot
帮助的地方;在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;