SAS:强制PROC GCHART显示空列

时间:2015-10-20 08:44:48

标签: sas proc gchart

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

Month    Volume
Jan      2
Feb      4
May      19
Sep      7

当我使用月份和音量使用 GCHART 创建图表时,我会得到四个小节。我想看整整一年(其余几个月都是空栏)。 我尝试使用:

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

但是,我只得到四列而不是十二列。我该怎么办?

感谢。

1 个答案:

答案 0 :(得分:2)

您需要创建一个包含没有数据的月份的数据集。然后将该数据集与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;