Publié le :
Graphique CREATION_INTERNE

Génération de définitions de symboles graphiques

Ce code est également disponible en : Deutsch English Español
Le script utilise un Data Step pour lire une liste de styles de marqueurs (forme, police, couleur) via des datalines ('cards'). Il utilise `CALL SYMPUT` pour créer une série de variables macro globales contenant les instructions `symbolN value=...`. Une macro `%symbols` est ensuite définie pour exécuter ces définitions de symboles en boucle, permettant d'appliquer le style approprié selon le nombre de groupes à visualiser.
Analyse des données

Type : CREATION_INTERNE


Les définitions des symboles (formes et couleurs) sont codées en dur dans le script via l'instruction CARDS.

1 Bloc de code
DATA STEP
Explication :
Lit les propriétés des symboles, construit la chaîne de commande SAS/GRAPH correspondante et la stocke dans une variable macro.
Copié !
1DATA _null_;
2 INFILE CARDS eof=END;
3 LENGTH sym $200;
4 INPUT value $char8. +1 font $char8. +1 color $char8.;
5 x=_n_;
6 y=_n_;
7 z=_n_;
8 OUTPUT;
9 x+1;
10 OUTPUT;
11 
12 IF value='"' then value="'"||'"'||"'";
13 
14 sym="symbol"||trim(left(put(_n_,2.)))||" value="||value;
15 IF font ^= "" THEN sym=trim(sym)||' font='||font;
16 IF color^= "" THEN sym=trim(sym)||' color='||color;
17 ELSE sym=trim(sym)||' color=black';
18 
19 call symput ('symbol'||left(put(_n_,2.)), trim(sym));
20 return;
21 
22END:
23 call symput ('Nsymbol', left(put(_n_-1,8.)));
24 delete;
25 
26 CARDS;
27dot black filled-circle
28U marker blue filled-square
29/* ... suite des données ... */
30 ;
31RUN;
2 Bloc de code
MACRO
Explication :
Définit la macro qui applique les définitions de symboles précédemment générées.
Copié !
1%macro symbols (groups);
2 %IF (&groups > &Nsymbol) %THEN %let groups=&Nsymbol;
3 goptions reset=symbol;
4 %DO i=1 %to &groups;
5 &&symbol&i;
6 %END;
7%mend;
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.
Informations de Copyright : Richard A. DeVenezia, 93/06/30