Veröffentlicht am :
Grafik CREATION_INTERNE

Generierung von grafischen Symboldefinitionen

Dieser Code ist auch verfügbar auf: English Español Français
Das Skript verwendet einen Data Step, um eine Liste von Marker-Stilen (Form, Schriftart, Farbe) über Datalines ('cards') zu lesen. Es nutzt `CALL SYMPUT`, um eine Reihe globaler Makrovariablen zu erstellen, die die Anweisungen `symbolN value=...` enthalten. Ein Makro `%symbols` wird dann definiert, um diese Symboldefinitionen in einer Schleife auszuführen, wodurch der passende Stil entsprechend der Anzahl der zu visualisierenden Gruppen angewendet werden kann.
Datenanalyse

Type : CREATION_INTERNE


Die Symboldefinitionen (Formen und Farben) sind im Skript über die CARDS-Anweisung fest codiert.

1 Codeblock
DATA STEP
Erklärung :
Liest die Symboleigenschaften, konstruiert die entsprechende SAS/GRAPH Befehlszeichenfolge und speichert sie in einer Makrovariablen.
Kopiert!
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 Codeblock
MACRO
Erklärung :
Definiert das Makro, das die zuvor generierten Symboldefinitionen anwendet.
Kopiert!
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;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Richard A. DeVenezia, 93/06/30