Veröffentlicht am :
Reporting CREATION_INTERNE

100% gestapeltes horizontales Balkendiagramm

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript beginnt mit der Erstellung eines Datensatzes 'my_data' mit Informationen zu Kategorien, Serien und Beträgen. Anschließend wird PROC SQL verwendet, um die Gesamtsumme der Beträge für jede Kategorie ('bartotal') zu berechnen. Ein zweiter DATA STEP wird verwendet, um den Prozentsatz jedes Betrags im Verhältnis zur Gesamtsumme seiner Kategorie ('catpct') zu berechnen und ein Prozentformat anzuwenden. Schließlich wird die ODS-Ausgabe so konfiguriert, dass eine HTML-Datei und ein PNG-Bild generiert werden. PROC SGPLOT wird verwendet, um das zu 100 % gestapelte horizontale Balkendiagramm zu erstellen, wobei 'category' auf der Y-Achse, 'catpct' als Antwort und 'series' für die Gruppierung der Balken verwendet werden. Titel und Stilattribute werden angewendet, um die Präsentation zu verbessern.
Datenanalyse

Type : CREATION_INTERNE


Die Initialdaten werden direkt im Skript über einen DATALINES-Block in einem DATA STEP erstellt. Sie werden anschließend durch weitere PROC SQL- und DATA STEP-Schritte transformiert und angereichert.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt einen Datensatz namens 'my_data'. Er verwendet die 'input'-Anweisung, um drei Variablen (CATEGORY, SERIES, AMOUNT) zu definieren, und den 'datalines'-Block, um die Daten direkt in den Datensatz einzulesen.
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;
2 Codeblock
PROC SQL Data
Erklärung :
Diese SQL-Prozedur modifiziert den Datensatz 'my_data'. Sie berechnet die Summe der 'amount' für jede 'category', speichert diese Gesamtsumme in einer neuen Spalte 'bartotal' und erstellt den Datensatz 'my_data' mit dieser neuen Spalte neu. Dies ist ein wesentlicher Aggregationsschritt für die Prozentberechnungen.
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;
3 Codeblock
DATA STEP
Erklärung :
Dieser DATA STEP aktualisiert den vorhandenen Datensatz 'my_data'. Er berechnet den Prozentsatz ('catpct') jedes 'amount' im Verhältnis zum entsprechenden 'bartotal'. Eine Formatierung 'percent6.0' wird auf die neue Variable 'catpct' angewendet, um eine Prozentanzeige zu erhalten.
Kopiert!
1DATA my_data; SET my_data;
2FORMAT catpct percent6.0;
3catpct=amount/bartotal;
4RUN;
4 Codeblock
PROC SGPLOT
Erklärung :
Dieser Block verwaltet die Ausgabe und Visualisierung. Die ODS-Anweisungen (Output Delivery System) werden verwendet, um eine HTML-Ausgabe und ein PNG-Bild des Diagramms zu generieren. Anschließend wird PROC SGPLOT aufgerufen, um ein zu 100 % gestapeltes horizontales Balkendiagramm zu erstellen. Es verwendet 'category' auf der Y-Achse, 'catpct' als Antwortvariable und 'series' zum Gruppieren der Balken, wodurch der proportionale Beitrag jeder Serie innerhalb jeder Kategorie angezeigt wird. Stiloptionen, Titel und Achsen werden konfiguriert, um das Erscheinungsbild des Diagramms anzupassen.
Kopiert!
1ODS LISTING CLOSE;
2ODS HTML path=odsout body="&name..htm"
3 (title="SGplot 100% Stacked Horizontal Bar")
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 "Compares the percent each value";
11title3 color=gray33 ls=0.5 h=17pt "to a total across categories";
12 
13PROC SGPLOT DATA=my_data noautolegend pad=(left=10% right=15%);
14label catpct='PERCENT';
15styleattrs datacolors=(cx9999ff cx993366 cxffffcc);
16hbar category / response=catpct stat=sum
17 group=series /*barwidth=.6*/
18 outlineattrs=(color=black) nostatlabel;
19xaxis
20 values=(0 to 1 BY .2)
21 labelattrs=(size=16pt weight=bold color=gray33)
22 valueattrs=(size=16pt weight=bold color=gray33)
23 offsetmax=0 grid minor minorcount=1;
24yaxis
25 labelattrs=(size=16pt weight=bold color=gray33)
26 valueattrs=(size=16pt weight=bold color=gray33)
27 display=(noticks);
28RUN;
29 
30QUIT;
31ODS HTML CLOSE;
32ODS 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.