2015-10-20 82 views
1

我使用PROC GCHART創建圖表。假設數據是這樣的:SAS:強制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