【问题标题】:SAS: Force PROC GCHART to show empty columnsSAS:强制 PROC GCHART 显示空列
【发布时间】:2015-10-20 08:44:47
【问题描述】:

我用PROC GCHART 创建了一个图表。假设数据如下所示:

Month    Volume
Jan      2
Feb      4
May      19
Sep      7

当我使用 GCHART 使用月份和成交量创建图表时,我得到四个条形图。不过,我希望看到一整年(剩余月份为空列)。 我尝试使用:

axis order=('Jan','Feb',...,'Nov','Dec');

但是,我仍然只得到四列而不是十二列。我能做什么?

谢谢。

【问题讨论】:

    标签: sas proc gchart


    【解决方案1】:

    您需要创建一个包含没有数据的月份的数据集。然后将该数据集与您的 AXIS 语句一起使用,以强制所有月份出现在 GCHART 中。请参阅下面的示例代码。希望这会有所帮助。

    data have;
        infile cards;
        input Month $  Volume;
        cards;
    Jan      2
    Feb      4
    May      19
    Sep      7
    ;
    run;
    
    
    *** CREATE A DATASET WITH ALL 12 MONTHS ***;
    data allmon;
        infile cards;
        input Month $ @@;
        cards;
    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    ;
    run;
    
    *** USE PROC SQL TO MERGE BOTH DATASETS WITHOUT HAVING TO SORT FIRST ***;
    *** USE THIS DATASET WITH GCHART ***;
    proc sql;
        create table want as
        select *
        from allmon left join have
        on (allmon.month = have.month)
    ;
    run;
    
    proc print data=want;
    run;
    
    
    axis1 order=('Jan' 'Feb'  'Mar' 'Apr' 'May' 'Jun' 'Jul' 'Aug' 'Sep' 'Oct' 'Nov' 'Dec');
    
    proc gchart data=want;
        vbar month / sumvar=volume maxis=axis1;
    run;
    

    【讨论】:

    • 谢谢。实际上,您不必创建空字段。只需使用轴,声明所有月份,并使用 maxis 就可以了 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多