2015-10-20 2 views
1

Je crée un graphique avec PROC GCHART. Supposons que les données ressemble à ceci:SAS: Force PROC GCHART pour afficher les colonnes vides

Month Volume 
Jan  2 
Feb  4 
May  19 
Sep  7 

Lorsque je crée le graphique avec GCHART en utilisant le mois et le volume, je reçois quatre barres. Je voudrais voir l'année entière (avec des colonnes vides pour les mois restants). Je essayé d'utiliser:

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

mais encore, je ne reçois que quatre colonnes au lieu de douze. Que puis-je faire?

Merci.

Répondre

2

Vous devez créer un jeu de données incluant les mois sans données. Utilisez ensuite cet ensemble de données avec votre instruction AXIS pour forcer tous les mois à apparaître dans GCHART. Voir l'exemple de code ci-dessous. J'espère que cela t'aides.

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

Merci. En fait, vous n'avez pas besoin de créer les champs vides. Juste en utilisant l'axe, en déclarant tous les mois, et en utilisant les travaux de maxis juste bien :) – Berbatov