2015-10-20 6 views
1

Создаю диаграмму с PROC GCHART. Предположим, что данные выглядит следующим образом:SAS: Force PROC GCHART показывает пустые столбцы

Month Volume 
Jan  2 
Feb  4 
May  19 
Sep  7 

Когда я создаю график с GCHART используя месяц и громкости, я получаю четыре бара. Хотелось бы видеть весь год (с пустыми столбцами на оставшиеся месяцы). Я попытался с помощью:

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

, но все же, я получаю только четыре колонки, а не двенадцать. Что я могу сделать?

Спасибо.

ответ

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; 
+0

Спасибо. На самом деле вам не нужно создавать пустые поля. Просто используя ось, объявляя все месяцы, а использование maxis работает просто отлично :) – Berbatov