Publié le :
Graphique CREATION_INTERNE

Visualisation Statistique Annotée avec PROC GPLOT

Ce code est également disponible en : Deutsch English Español
En attente de validation
Ce script génère d'abord un jeu de données de test contenant diverses mesures physiques classées par type (TEST). Il utilise ensuite la procédure MEANS pour calculer la moyenne, le minimum et le maximum pour chaque catégorie. Une étape DATA complexe construit un jeu de données d'annotation (Annotate Facility) pour dessiner manuellement des barres d'erreur horizontales représentant l'intervalle Min-Max et marquer la moyenne. Enfin, la procédure GPLOT (SAS©/GRAPH) affiche le résultat. Note : Ce code utilise des procédures graphiques anciennes (SAS©/GRAPH) au lieu des procédures ODS Graphics modernes (SGPLOT).
Analyse des données

Type : CREATION_INTERNE


Les données sont définies directement dans le script via l'instruction CARDS dans l'étape DATA 'a'.

1 Bloc de code
DATA STEP Data
Explication :
Initialisation des options graphiques globales et création du jeu de données source 'a' contenant les variables TEST (catégorie) et BREAKS (valeur).
Copié !
1/* Set graphics options */
2goptions reset=all cback=white border;
3 
4/* Set system options */
5DATA a;
6INPUT TEST $ BREAKS ;
7CARDS;
8Cold 5
9Cold 12
10Cold 14
11Cold 22
12Cold 52
13Heat 20
14Heat 25
15Heat 10
16Heat 22
17Heat 47
18Gases 12
19Gases 25
20Gases 33
21Gases 48
22Gases 24
23Pressure 10
24Pressure 12
25Pressure 14
26Pressure 22
27Pressure 60
28Xrays 20
29Xrays 25
30Xrays 14
31Xrays 22
32Xrays 29
33Humidity 20
34Humidity 25
35Humidity 33
36Humidity 40
37Humidity 24
38;
39RUN;
2 Bloc de code
PROC SORT
Explication :
Tri des données par la variable de groupe 'TEST' pour préparer l'agrégation.
Copié !
1/* Sort
2data by variable TEST */
3PROC SORT;
4BY TEST;
5 
6RUN;
7 
3 Bloc de code
PROC MEANS Data
Explication :
Calcul des statistiques descriptives (moyenne, écart-type, min, max) regroupées par 'TEST'. Les résultats sont stockés dans la table de sortie 'b'.
Copié !
1/**************************************************/
2/* Create an output data set, B using PROC MEANS */
3/* that contain new variables, MEAN, STD, STDERR, */
4/* MIN, and MAX. */
5/**************************************************/
6 
7PROC MEANS mean std stderr min max DATA=a;
8BY TEST;
9OUTPUT out=b mean=mean min=min max=max;
10RUN;
4 Bloc de code
DATA STEP Data
Explication :
Création d'un jeu de données spécial 'Annotate'. Il définit des commandes graphiques (move, draw) pour dessiner des lignes bleues du min au max, et des marqueurs rouges pour la moyenne, le min et le max. Utilise le système de coordonnées de données (xsys='2', ysys='2').
Copié !
1/****************************************************************/
2/* Create an annotate data set, ANNO to draw the bars at +/- 1, */
3/* 2, or 3 Standard Deviation or Standard Error of the mean. */
4/****************************************************************/
5 
6DATA anno;
7retain xsys ysys '2' when 'a';
8LENGTH color function $8 ;
9SET b;
10 
11/* Draw the horizontal line from min to max */
12function='move'; xsys='2'; ysys='2'; yc=TEST; x=min; color='blue'; OUTPUT;
13function='draw'; x=max; color='blue'; size=2; OUTPUT;
14 
15/* Draw the MEAN horizontal line making the SIZE bigger */
16function='move'; xsys='2';ysys='2';yc=TEST;x=mean; color='red'; OUTPUT;
17function='draw'; x=mean; ysys='9'; y=+2; size=4; OUTPUT;
18function='draw'; x=mean; y=-4; size=4; OUTPUT;
19 
20/* Draw the line for the MIN value */
21function='move';xsys='2';ysys='2';yc=TEST;x=min;color='red';OUTPUT;
22function='draw';x=min;ysys='9';y=+2;size=2;OUTPUT;
23function='draw';x=min;y=-4;size=2;OUTPUT;
24 
25/* Draw the line for the MAX value */
26function='move';xsys='2';ysys='2';yc=TEST;x=max;color='red';OUTPUT;
27function='draw';x=max;ysys='9';y=+2;size=2;OUTPUT;
28function='draw';x=max;y=-4;size=2;OUTPUT;
29RUN;
5 Bloc de code
PROC GPLOT
Explication :
Génération du graphique final. La procédure GPLOT utilise le jeu de données 'anno' pour superposer les dessins personnalisés aux axes définis. L'axe horizontal est fixé de 0 à 100.
Copié !
1axis1 order=(0 to 100 BY 10);
2symbol1 i=none v=none c=black;
3 
4PROC GPLOT DATA=b ;
5plot test*mean / anno=anno haxis=axis1 href=30 60 90; /* The HREF= option draws reference lines */
6RUN;
7QUIT;
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.
Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« Ce script est un cas d'école sur l'utilisation de l'Annotate Facility, une méthode de programmation graphique héritée de SAS/GRAPH qui offre une liberté de personnalisation quasi illimitée. Bien que les procédures modernes comme SGPLOT intègrent désormais nativement les barres d'erreur, cette approche manuelle via une table d'annotations (anno) permet de comprendre comment SAS construit un graphique couche par couche. En définissant des fonctions comme move et draw, vous ne vous contentez pas d'afficher des données : vous pilotez précisément le tracé de chaque segment pour représenter l'intervalle Min-Max et la position de la moyenne, transformant un simple nuage de points en un outil de diagnostic statistique rigoureux. »