Publié le :
Reporting CREATION_INTERNE

Diagramme à barres horizontales empilées à 100%

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par créer un jeu de données 'my_data' avec des informations sur les catégories, les séries et les montants. Ensuite, il utilise PROC SQL pour calculer la somme totale des montants pour chaque catégorie ('bartotal'). Un second DATA STEP est utilisé pour calculer le pourcentage de chaque montant par rapport au total de sa catégorie ('catpct') et appliquer un format de pourcentage. Enfin, la sortie ODS est configurée pour générer un fichier HTML et une image PNG. PROC SGPLOT est utilisée pour créer le diagramme à barres horizontales empilées à 100%, en utilisant 'category' sur l'axe des Y, 'catpct' comme réponse, et 'series' pour le regroupement des barres. Des titres et des attributs de style sont appliqués pour améliorer la présentation.
Analyse des données

Type : CREATION_INTERNE


Les données initiales sont créées directement dans le script via un bloc DATALINES dans un DATA STEP. Elles sont ensuite transformées et enrichies par des étapes PROC SQL et DATA STEP ultérieures.

1 Bloc de code
DATA STEP Data
Explication :
Ce bloc DATA STEP crée un jeu de données nommé 'my_data'. Il utilise la déclaration 'input' pour définir trois variables (CATEGORY, SERIES, AMOUNT) et le bloc 'datalines' pour lire directement les données dans le jeu de données.
Copié !
1DATA my_data;
2INPUT CATEGORY SERIES $ 3-11 AMOUNT;
3DATALINES;
41 Series A 5.0
52 Series A 6.8
63 Series A 9.2
71 Series B 6.5
82 Series B 6.9
93 Series B 5.6
101 Series C 2.3
112 Series C 3.1
123 Series C 2.3
13;
14RUN;
2 Bloc de code
PROC SQL Data
Explication :
Cette procédure SQL modifie le jeu de données 'my_data'. Elle calcule la somme des 'amount' pour chaque 'category', stocke ce total dans une nouvelle colonne 'bartotal', et recrée le jeu de données 'my_data' avec cette nouvelle colonne. C'est une étape d'agrégation essentielle pour les calculs de pourcentage.
Copié !
1PROC SQL;
2 create TABLE my_data as
3 select *, sum(amount) as bartotal
4 from my_data
5 group BY category;
6QUIT; RUN;
3 Bloc de code
DATA STEP
Explication :
Ce DATA STEP met à jour le jeu de données existant 'my_data'. Il calcule le pourcentage ('catpct') de chaque 'amount' par rapport au 'bartotal' correspondant. Une mise en forme 'percent6.0' est appliquée à la nouvelle variable 'catpct' pour un affichage en pourcentage.
Copié !
1DATA my_data; SET my_data;
2FORMAT catpct percent6.0;
3catpct=amount/bartotal;
4RUN;
4 Bloc de code
PROC SGPLOT
Explication :
Ce bloc gère la sortie et la visualisation. Les déclarations ODS (Output Delivery System) sont utilisées pour générer une sortie HTML et une image PNG du graphique. La PROC SGPLOT est ensuite appelée pour créer un diagramme à barres horizontales empilées à 100%. Elle utilise 'category' sur l'axe Y, 'catpct' comme variable de réponse, et 'series' pour grouper les barres, affichant ainsi la contribution proportionnelle de chaque série au sein de chaque catégorie. Des options de style, de titres et d'axes sont configurées pour personnaliser l'apparence du graphique.
Copié !
1ODS LISTING CLOSE;
2ODS HTML path=odsout body="&name..htm"
3 (title="SGplot 100% Stacked Horizontal Bar")
4 style=htmlblue;
5 
6ods graphics / imagefmt=png imagename="&name"
7 width=800px height=600px noborder imagemap;
8 
9title1 color=gray33 ls=0.5 h=23pt "100% Stacked Horizontal Bar";
10title2 color=gray33 ls=0.5 h=17pt "Compares the percent each value";
11title3 color=gray33 ls=0.5 h=17pt "to a total across categories";
12 
13PROC SGPLOT DATA=my_data noautolegend pad=(left=10% right=15%);
14label catpct='PERCENT';
15styleattrs datacolors=(cx9999ff cx993366 cxffffcc);
16hbar category / response=catpct stat=sum
17 group=series /*barwidth=.6*/
18 outlineattrs=(color=black) nostatlabel;
19xaxis
20 values=(0 to 1 BY .2)
21 labelattrs=(size=16pt weight=bold color=gray33)
22 valueattrs=(size=16pt weight=bold color=gray33)
23 offsetmax=0 grid minor minorcount=1;
24yaxis
25 labelattrs=(size=16pt weight=bold color=gray33)
26 valueattrs=(size=16pt weight=bold color=gray33)
27 display=(noticks);
28RUN;
29 
30QUIT;
31ODS HTML CLOSE;
32ODS LISTING;
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.