Publié le :
Reporting CREATION_INTERNE

Graphique à barres avec ruptures d'axe

Ce code est également disponible en : Deutsch English
En attente de validation
Le script commence par créer un jeu de données 'plantProd' contenant des données de production pour différents sites et périodes. Une astuce est utilisée pour créer des ruptures dans l'axe des X du graphique : les points dans la variable 'Time' sont remplacés par des espaces insécables. Ensuite, une procédure PROC TEMPLATE définit un modèle de graphique personnalisé ('chunked') qui superpose un diagramme à barres (BarChartParm) et un graphique en courbes (SeriesPlot). Enfin, PROC SGRENDER utilise ce modèle et les données pour générer le graphique final, démontrant comment séparer visuellement des groupes de catégories sur un axe discret.
Analyse des données

Type : CREATION_INTERNE


Les données sont créées directement dans le script SAS via une étape DATA STEP et l'instruction DATALINES.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP crée la table 'plantProd'. Il lit des données brutes via 'datalines', définit les attributs des variables (libellés, formats) et remplace les points dans la variable 'Time' par des espaces insécables ('A0'x). Cette substitution est une technique pour forcer des espacements sur un axe discret dans un graphique SG.
Copié !
1%let nbsp='A0'x; /* ASCII: ’A0’x, UTF-8: ’C2A0’x, EBCDIC: ’41’x */
2 
3DATA plantProd;
4 attrib prod label='Production'
5 prod_pct label='Production %' FORMAT=percent5.2;
6 INPUT prod prod_pct Time $ Site $;
7 Time=translate(Time,  ., '.'); /* map '.' to non-breaking space */
8 DATALINES;
9321 0.0334 w01 US64
10373 0.0173 w01 CA41
11218 0.0367 w08 US64
12420 0.0188 w08 CA41
13117 0.0163 w16 US64
14461 0.0190 w16 CA41
1564 0.0441 w24 US64
16320 0.0208 w24 CA41
17156 0.0261 w32 US64
18620 0.0116 w32 CA41
19115 0.0193 w40 US64
20700 0.0058 w40 CA41
21110 0.0091 w48 US64
22642 0.0039 w48 CA41
23157 0.0099 w52 US64
24586 0.0012 w52 CA41
25. . .. US64
26. . .. CA41
274657 0.0315 Q1 US64
282491 0.0162 Q1 CA41
291434 0.0251 Q2 US64
302147 0.0112 Q2 CA41
311696 0.0314 Q3 US64
323206 0.0155 Q3 CA41
332895 0.0399 Q4 US64
344174 0.0226 Q4 CA41
35. . ... US64
36. . ... CA41
376091 0.0294 H1 US64
384638 0.0145 H1 CA41
394591 0.0364 H2 US64
407380 0.0197 H2 CA41
41;
42RUN;
2 Bloc de code
PROC TEMPLATE
Explication :
Ce bloc définit un modèle de graphique statistique nommé 'chunked' avec PROC TEMPLATE. Le modèle superpose un diagramme à barres (BarChartParm) et un graphique en courbes (SeriesPlot). L'axe X est configuré comme 'discret' pour traiter chaque valeur de 'Time' comme une catégorie distincte. L'axe Y secondaire (Y2) est utilisé pour la courbe des pourcentages.
Copié !
1PROC TEMPLATE;
2 define statgraph chunked;
3 beginGraph;
4 entryTitle "Categorical Axis with Gaps" ;
5 layout overlay / xAxisopts=( display=(tickvalues line) type=discrete )
6 yAxisopts=( griddisplay=on offsetmin=0 )
7 y2Axisopts=( offsetmin=0 );
8 BarChartParm X=time Y=prod / group=Site name="bar" fillAttrs=(transparency=0.2);
9 SeriesPlot X=time Y=prod_pct / group=Site display=all break=true yaxis=y2
10 markerattrs=(symbol=squareFilled)
11 lineattrs=(pattern=solid thickness=2) ;
12
13 DiscreteLegend "bar" / title="Site:";
14 endlayout;
15 entryFootnote halign=left
16 "Uses non-breaking spaces to add axis gaps" ;
17 endgraph;
18 END;
19RUN;
3 Bloc de code
PROC SGRENDER
Explication :
Cette procédure exécute le rendu du graphique. Elle applique le modèle 'chunked' (défini précédemment) au jeu de données 'plantProd' pour générer le graphique final, qui montrera la production par site et période avec des ruptures visuelles.
Copié !
1 
2PROC SGRENDER template=chunked
3DATA=plantProd;
4RUN;
5 
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.