图表上的 SAS 参考线

SAS reference line over chart

我想绘制每日销售数据与每月某天的关系图。

data _test3;
input day dailysales dow . weeklysales;
cards;
1 20.1 Mon 19.2
2 19.0 Tue 19.2
....
30 32.1 Tue 30.0
31 33.3  Wed 30.0
;
run;

没有分组 dow(day of week),此代码有效

proc sgplot data=_test3 ;
vbar Day / response=DailySale barwidth=0.7 nooutline;
vline Day / response=WeeklySale;
keylegend / position=topright noborder autoitemsize;
xaxis display=(nolabel);
yaxis grid;
run;

这绘制了每日销售额和每周平均值作为条形图上的参考线。

但是一周中的不同日子我需要不同的颜色。例如 Sun 上的红色和 Mon 上的 pink

所以我调整上面的代码

proc sgplot data=_test3 ;
vbar Day / group = dow response=DailySale barwidth=0.7 nooutline;
vline Day / group = dow WeeklySale;
keylegend / position=topright noborder autoitemsize;
xaxis display=(nolabel);
yaxis grid;
run;

对于参考线(每周销售),我不想按dow分组。理想情况下,它应该是一条覆盖在条形图上的黑线。但是SAS必须在vline语句中保留group

对于汇总图(即要求 SAS 汇总事物的图),您只能按一个变量分组。但是,我认为您实际上并没有在这里总结情节。您已经完成了工作(日销售额和周销售额),只需绘制它即可。所以使用非摘要版本的图;然后你可以用分组做任何你想做的事。如果你真的还有一些总结要做,那就自己提前做吧。

proc sgplot data=_test3 ;
  vbarparm category=Day response=DailySales/group=dow barwidth=0.7 nooutline;
  series x=day y=WeeklySales;
  keylegend / position=topright noborder autoitemsize;
  xaxis display=(nolabel);
  yaxis grid;
run;