Veröffentlicht am :
Visualisierung CREATION_INTERNE

100% gestapeltes horizontales Balkendiagramm mit 3D-Effekt unter Verwendung von SGPLOT

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript initialisiert eine Makrovariable und einen Fileref für die ODS-Ausgabe. Anschließend wird der Datensatz `my_data` aus Inline-Daten (`datalines`) erstellt. Ein `PROC SQL`-Schritt wird verwendet, um die Gesamtsumme (`bartotal`) von `AMOUNT` für jede `CATEGORY` zu berechnen. Ein zweiter `DATA STEP` berechnet den Prozentsatz (`catpct`) jeder `AMOUNT` im Verhältnis zu ihrem entsprechenden `bartotal` und wendet ein Format an. Die ODS HTML- und ODS Graphics-Ziele werden konfiguriert, um eine HTML-Datei mit dem Diagramm zu generieren. Schließlich wird `PROC SGPLOT` verwendet, um ein zu 100% gestapeltes horizontales Balkendiagramm zu erstellen, das mit benutzerdefinierten Farben, einem 3D-Effekt ('sheen') und spezifischen Achsenattributen gestaltet ist. Die Ausgabe wird in einer HTML-Datei generiert und die ODS-Ziele werden wieder geschlossen.
Datenanalyse

Type : CREATION_INTERNE


Die Quelldaten `my_data` werden direkt im SAS-Skript mithilfe der `datalines`-Anweisung erstellt, was eine autonome Ausführung ohne externe Abhängigkeiten ermöglicht.

1 Codeblock
Déclarations Globales
Erklärung :
Definiert eine Makrovariable `name` für den Dateinamen und einen Fileref `odsout`, der auf das aktuelle Verzeichnis für ODS-Ausgaben zeigt.
Kopiert!
1%let name=bar6;
2 
3/*
4Set your current-working-directory (to read/write files), if you need to ...
5%let rc=%sysfunc(dlgcdir('c:\someplace\public_html'));
6*/
7filename odsout '.';
2 Codeblock
DATA STEP Data
Erklärung :
Erstellt einen SAS-Datensatz namens `my_data` unter Verwendung von inline bereitgestellten Daten über die `datalines`-Anweisung, mit den Variablen `CATEGORY`, `SERIES` (Zeichen) und `AMOUNT`.
Kopiert!
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 Codeblock
PROC SQL Data
Erklärung :
Verwendet `PROC SQL`, um den Datensatz `my_data` zu modifizieren. Er berechnet `my_data` neu, indem eine neue Spalte `bartotal` hinzugefügt wird, die die Summe von `AMOUNT` für jede `CATEGORY` ist. Die `GROUP BY`-Klausel stellt sicher, dass `bartotal` pro Kategorie berechnet wird.
Kopiert!
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 Codeblock
DATA STEP Data
Erklärung :
Ein zweiter `DATA STEP` liest den Datensatz `my_data` (modifiziert durch `PROC SQL`) und berechnet eine neue Variable `catpct`, die den Prozentsatz von `AMOUNT` im Verhältnis zu `bartotal` darstellt. Ein `percent6.0`-Format wird auf `catpct` angewendet.
Kopiert!
1DATA my_data; SET my_data;
2FORMAT catpct percent6.0;
3catpct=amount/bartotal;
4RUN;
5 Codeblock
ODS HTML
Erklärung :
Schließt das ODS LISTING-Ziel. Öffnet das ODS HTML-Ziel, gibt die HTML-Ausgabedatei (`bar6.htm`), den Seitentitel und den Stil `htmlblue` an. Konfiguriert `ODS GRAPHICS` für den PNG-Bildexport mit spezifischen Abmessungen und definiert zwei Titel für das Diagramm.
Kopiert!
1ODS LISTING CLOSE;
2ODS HTML path=odsout body="&name..htm"
3 (title="SGplot 100% Stacked Horizontal Bar (3D)")
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 Horizontal Bar";
10title2 color=gray33 ls=0.5 h=17pt "With 3D Shading";
6 Codeblock
PROC SGPLOT
Erklärung :
Generiert ein zu 100% gestapeltes horizontales Balkendiagramm mithilfe von `PROC SGPLOT`. Der Datensatz `my_data` wird verwendet. Die Option `hbar` erstellt die Balken, `response=catpct` gibt die darzustellende Variable an, `stat=sum` aggregiert die Werte und `group=series` stapelt die Balken nach `SERIES`. `dataskin=sheen` wendet einen visuellen 3D-Effekt an. Die X- und Y-Achsen werden mit benutzerdefinierten Stil- und Anzeigeattributen konfiguriert.
Kopiert!
1PROC SGPLOT DATA=my_data noautolegend pad=(left=10% right=15%);
2label catpct='PERCENT';
3styleattrs datacolors=(cx9999ff cx993366 cxffffcc);
4hbar category / response=catpct stat=sum
5 group=series /*barwidth=.6*/
6 dataskin=sheen /* <--- basically, added this line! */
7 outlineattrs=(color=black) nostatlabel;
8xaxis
9 values=(0 to 1 BY .2)
10 labelattrs=(size=16pt weight=bold color=gray33)
11 valueattrs=(size=16pt weight=bold color=gray33)
12 offsetmax=0 grid minor minorcount=1;
13yaxis
14 labelattrs=(size=16pt weight=bold color=gray33)
15 valueattrs=(size=16pt weight=bold color=gray33)
16 display=(noticks);
17RUN;
7 Codeblock
ODS HTML
Erklärung :
Beendet die Ausführung der Prozeduren (`quit`). Schließt das ODS HTML-Ziel und reaktiviert das ODS LISTING-Ziel.
Kopiert!
1QUIT;
2ODS HTML CLOSE;
3ODS LISTING;
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.