Publié le :
Graphique CREATION_INTERNE

Graphique à barres empilées 100% avec SGPLOT

Ce code est également disponible en : Deutsch English Español
En attente de validation
Le script commence par définir une variable macro et un fileref. Il crée ensuite un jeu de données nommé 'my_data' à partir d'instructions DATALINES. Une étape PROC SQL est utilisée pour enrichir 'my_data' en calculant le total des montants par catégorie ('bartotal'). Une seconde étape DATA STEP calcule le pourcentage de chaque montant par rapport à son 'bartotal' ('catpct') et formate cette nouvelle variable. Enfin, le script configure les destinations ODS (HTML et graphique PNG) et utilise PROC SGPLOT pour générer un graphique à barres empilées de 100%, illustrant ces pourcentages avec des personnalisations esthétiques pour les axes et les couleurs.
Analyse des données

Type : CREATION_INTERNE


Le jeu de données principal 'my_data' est créé directement dans le script via une instruction DATALINES, ce qui en fait une source de données interne au code.

1 Bloc de code
Macro Variable / Fileref
Explication :
Définit la variable macro 'name' utilisée pour le nom de fichier de sortie et le 'fileref' 'odsout' pointant vers le répertoire courant pour les sorties ODS.
Copié !
1%let name=col5;
2filename odsout '.';
2 Bloc de code
DATA STEP Data
Explication :
Crée le jeu de données SAS 'my_data' en lisant les données brutes fournies directement dans le script ('datalines') avec les variables CATEGORY, SERIES et AMOUNT.
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;
3 Bloc de code
PROC SQL
Explication :
Modifie le jeu de données 'my_data' en ajoutant une nouvelle colonne 'bartotal', qui représente la somme des 'AMOUNT' pour chaque 'CATEGORY' à l'aide d'une requête SQL.
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;
4 Bloc de code
DATA STEP
Explication :
Modifie le jeu de données 'my_data' en calculant 'catpct', le pourcentage de 'AMOUNT' par rapport à 'bartotal', et applique un format de pourcentage à cette nouvelle variable.
Copié !
1DATA my_data; SET my_data;
2FORMAT catpct percent6.0;
3catpct=amount/bartotal;
4RUN;
5 Bloc de code
ODS
Explication :
Ferme la destination ODS LISTING par défaut. Ouvre la destination ODS HTML, spécifie le chemin de sortie, le nom du fichier HTML et le style. Configure les options ODS GRAPHICS pour l'image PNG générée. Définit les titres principaux du graphique avec des options de style et de couleur.
Copié !
1ODS LISTING CLOSE;
2ODS HTML path=odsout body="&name..htm"
3 (title="SGplot 100% Stacked 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 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";
6 Bloc de code
PROC SGPLOT
Explication :
Génère un graphique à barres empilées de 100% en utilisant le jeu de données 'my_data'. Les barres représentent 'CATEGORY', la hauteur est basée sur 'catpct', et les empilements sont définis par 'SERIES'. Le code personnalise les légendes, les couleurs des données, les attributs des barres (largeur, contour) et l'apparence des axes X et Y (labels, valeurs, grille).
Copié !
1PROC SGPLOT DATA=my_data noautolegend pad=(left=10% right=15%);
2label catpct='PERCENT';
3styleattrs datacolors=(cx9999ff cx993366 cxffffcc);
4vbar category / response=catpct stat=sum
5 group=series barwidth=.6
6 outlineattrs=(color=black) nostatlabel;
7yaxis
8 values=(0 to 1 BY .2)
9 labelattrs=(size=16pt weight=bold color=gray33)
10 valueattrs=(size=16pt weight=bold color=gray33)
11 offsetmax=0 grid minor minorcount=1;
12xaxis
13 labelattrs=(size=16pt weight=bold color=gray33)
14 valueattrs=(size=16pt weight=bold color=gray33)
15 display=(noticks);
16RUN;
7 Bloc de code
ODS
Explication :
Termine les procédures actives. Ferme la destination ODS HTML, enregistrant ainsi le fichier HTML et les images associées. Réactive ensuite la destination ODS LISTING.
Copié !
1QUIT;
2ODS HTML CLOSE;
3ODS 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.