【问题标题】:Stacked bar chart by group and subgroup in SASSAS中按组和子组的堆积条形图
【发布时间】:2015-04-08 23:00:37
【问题描述】:

我无法在 sas9.4 中按组和子组创建堆叠图表,我想要类似于 excel 图表的图表。请在下面找到示例数据和 excel 图表(第一张图片)以及 SAS 图表(第二张图片)。

我无法在同一轴(年份)上设置“实际”和“预测”段的共同年份。实际是指到 2014 年的数据,预测是指 2014 年以后的数据,两者应该在同一轴上。

goptions reset=all ;
goptions colors=(red blue green);
legend1 label=none ;

proc gchart data=NEW;
vbar year/ discrete type=sum sumvar=VALUE 
  group= segment subgroup=WKSCOPE      ;
  where year le 2020 AND YEAR ge 2012;
run;

【问题讨论】:

    标签: sas


    【解决方案1】:

    我会用注释解决这个问题。我知道SGPLOTGCHART 好,所以我会这样回答。

    data have;
      input segment $ year wkscope $ value;
      datalines;
    ACTUAL 2012 PH 5
    ACTUAL 2012 PH 1
    ACTUAL 2012 BHS 1
    ACTUAL 2012 RES 2
    ACTUAL 2013 PH 2
    ACTUAL 2013 PH 5
    ACTUAL 2013 BHS 1
    ACTUAL 2014 RES 2
    FORECAST 2015 PH 3
    FORECAST 2015 BHS 0
    FORECAST 2016 PH 4
    FORECAST 2016 RES 1
    FORECAST 2017 PH 5
    FORECAST 2017 BHS 1
    FORECAST 2017 RES 2
    ;;;;
    run;
    
    data sgannods;
      x1space='wallpercent';
      y1space='wallpercent';
      x1=75;
      y1=-10;
      label="Forecast";
      function='text';
      output;
      x1=25;
      label="Actual";
      output;
    run;
    
    proc sgplot data=have sganno=sgannods;
        vbar year/response=value group=wkscope groupdisplay=stack;
    run;
    

    基本上,除了段之外的所有事情,然后使用该值进行注释。您可以像我一样手动生成它,或者(最好)从原始数据中生成它,如果它可以改变的话。我使用WALLPERCENT,因为上半场是实际的,下半场是预测的,但如果它可以改变(2 个实际的 4 个预测),那么你不应该这样做;您应该使用 WALLPERCENT 并从数据中计算出正确的位置(可能使用 proc freq)或使用 DATAVALUE 并将其置于中间值之下。

    如果这还不够接近,我会去robslink.com,它有一组很好的示例(由 GCHART procs 集的开发人员之一编写)。 Sanjay 还有一个博客,Graphicalally speak,里面有一些很好的例子,都在SAS Communities 上发帖。

    我制作的图像如下。它在其他方面并不是特别接近,但所有这些都很容易修复(配色方案、尺寸、图例的位置)。

    数据标签是您无法真正拥有的一件事;如果您使用VBARPARM,它们是可添加的,但这需要提前汇总数据。 Sanjay 在他的一篇 blog posts 中介绍了这一点,大约 9.4M2(如果您有 M2 维护版本);如果您有旧版本,我也会在我的 MWSUG Paper, Labelling without the Hassle: How to Produce Labeled Stacked Bar Charts Using SGPLOT and GTL Without Annotate 中介绍这一点。

    【讨论】:

    • 谢谢乔,我还要维护 RBG 颜色和标签
    • 如果需要,您可以在另一个问题中询问如何做到这一点,但谷歌相当容易。
    猜你喜欢
    • 2012-11-09
    • 2017-02-23
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多