Veröffentlicht am :
Reporting SASHELP

Erweiterte Anpassung von Diagrammlegenden mit PROC SGPLOT

Dieser Code ist auch verfügbar auf: English Español Français
Dieses Skript veranschaulicht, wie das Erscheinungsbild von Legenden in PROC SGPLOT über die KEYLEGEND-Anweisung geändert werden kann. Es behandelt verschiedene Anwendungsfälle: Anpassung der Linienlänge, Änderung der Symbolskala, Kontrolle des Seitenverhältnisses von Füllbereichen und die Verwendung benutzerdefinierter Formate, die Unicode-Zeichen ('größer oder gleich'-Symbol) enthalten.
Datenanalyse

Type : SASHELP


Das Skript verwendet ausschließlich die Standard-Beispieltabellen SASHELP.CARS und SASHELP.HEART.

1 Codeblock
PROC FORMAT
Erklärung :
Konfiguration der Grafik-Ausgabeumgebung (ODS) und Erstellung eines benutzerdefinierten Formats 'agegroupUnicode', das eine Escape-Sequenz verwendet, um das mathematische Symbol 'größer oder gleich' (Unicode 2265) anzuzeigen.
Kopiert!
1%let gpath='.';
2%let dpi=200;
3 
4ods html close;
5ods listing gpath=&gpath image_dpi=&dpi;
6 
7/*--Unicode Format--*/
8PROC FORMAT;
9 value agegroupUnicode
10 0 -< 40 = '< 40'
11 40 -< 50 = '40 < 50'
12 50 -< 60 = '50 < 60'
13 60 - high = "(*ESC*){unicode '2265'x} 60"
14 ;
15RUN;
2 Codeblock
PROC SGPLOT
Erklärung :
Generierung eines einfachen polynomialen Regressionsdiagramms zur Schaffung einer visuellen Referenz für die Standardlegende.
Kopiert!
1/*--Legend default--*/
2ods graphics / reset width=5in height=3in imagename='LegendDefault';
3title 'MSRP by Horsepower';
4PROC SGPLOT DATA=sashelp.cars(where=(type eq 'Sedan'));
5 styleattrs axisextent=DATA;
6 reg x=horsepower y=msrp / cli clm degree=2;
7RUN;
3 Codeblock
PROC SGPLOT
Erklärung :
Änderung der repräsentativen Linienlänge in der Legende mithilfe der Option 'linelength=32' in der KEYLEGEND-Anweisung.
Kopiert!
1/*--Legend Line Length--*/
2ods graphics / reset width=5in height=3in imagename='LegendLine';
3title 'MSRP by Horsepower';
4PROC SGPLOT DATA=sashelp.cars(where=(type eq 'Sedan'));
5 styleattrs axisextent=DATA;
6 reg x=horsepower y=msrp / cli clm degree=2;
7 keylegend / linelength=32;
8RUN;
4 Codeblock
PROC SGPLOT
Erklärung :
Kombination aus Linienlänge und der Option 'scale=1.2', um die Elemente der Legende insgesamt zu vergrößern.
Kopiert!
1/*--Legend Line Length and Swatch--*/
2ods graphics / reset width=5in height=3in imagename='LegendLineScale';
3title 'MSRP by Horsepower';
4PROC SGPLOT DATA=sashelp.cars(where=(type eq 'Sedan'));
5 styleattrs axisextent=DATA;
6 reg x=horsepower y=msrp / cli clm degree=2;
7 keylegend / linelength=32 scale=1.2;
8RUN;
5 Codeblock
PROC SGPLOT
Erklärung :
Präzise Steuerung der Abmessungen der Legendenrechtecke (Farbfelder) mit 'fillheight' (Höhe) und 'fillaspect' (Seitenverhältnis, hier der goldene Schnitt).
Kopiert!
1/*--Legend Line Length and Swatch--*/
2ods graphics / reset width=5in height=3in imagename='LegendLineAspect';
3title 'MSRP by Horsepower';
4PROC SGPLOT DATA=sashelp.cars(where=(type eq 'Sedan'));
5 styleattrs axisextent=DATA;
6 reg x=horsepower y=msrp / cli clm degree=2;
7 keylegend / linelength=32 fillheight=2.5pct fillaspect=golden;
8RUN;
6 Codeblock
PROC SGPLOT
Erklärung :
Komplexes Balkendiagramm, das das zuvor definierte Unicode-Format verwendet. Die Legende wird innerhalb des Diagramms ('location=inside') platziert, opak dargestellt und ihre Abmessungen sind an den Stil 'dataskin=pressed' angepasst.
Kopiert!
1/*--Legend Swatch--*/
2ods graphics / reset width=5in height=3in imagename='DeathsUnicode';
3title 'Counts by Death Cause and Age Group';
4PROC SGPLOT DATA=sashelp.heart(where=(deathcause ne 'Unknown')) nocycleattrs noborder;
5 FORMAT ageatdeath agegroupUnicode.;
6 vbar ageatdeath / group=deathcause groupdisplay=cluster fillattrs=(color=white);
7 vbar ageatdeath / group=deathcause groupdisplay=cluster nooutline
8 baselineattrs=(thickness=0) dataskin=pressed filltype=gradient name='a';
9 keylegend 'a' / location=inside across=1 title='' fillheight=2.5pct fillaspect=2.5 opaque;
10 xaxis display=(nolabel noline);
11 yaxis label='Count' grid display=(noline noticks);
12RUN;
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.