Veröffentlicht am :
Grafisches Reporting CREATION_INTERNE

100% gestapeltes Balkendiagramm (3D) mit SGPLOT

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Das Skript beginnt mit der Definition einer Makrovariable 'name' und eines Filerefs 'odsout'. Anschließend wird ein Datensatz namens 'my_data' aus Inline-Daten (Datalines) erstellt. Eine PROC SQL wird verwendet, um dem Datensatz eine Spalte 'bartotal' hinzuzufügen, die die Summe von 'amount' pro 'category' darstellt. Ein zweiter DATA STEP berechnet den 'catpct' (Prozentsatz jedes 'amount' im Verhältnis zum 'bartotal') und formatiert diese neue Variable als Prozentsatz. Schließlich werden die ODS-Optionen für die HTML-Ausgabe konfiguriert, die Diagrammtitel definiert und PROC SGPLOT verwendet, um ein gestapeltes vertikales Balkendiagramm zu erstellen. Die wichtigsten SGPLOT-Optionen umfassen 'response=catpct', 'group=series' und 'dataskin=sheen' für den 3D-Effekt.
Datenanalyse

Type : CREATION_INTERNE


Der Datensatz 'my_data' wird vollständig am Anfang des Skripts unter Verwendung der DATALINES-Methode erstellt. Es werden keine externen Daten oder SASHELP-Bibliotheken als ursprüngliche Quelle verwendet.

1 Codeblock
MACRO/GLOBAL
Erklärung :
Definiert die Makrovariable 'name' als 'col6', die zum Benennen der HTML-Ausgabedatei und des Bildes verwendet wird. 'filename odsout '.' ' leitet die ODS-Ausgabe in das aktuelle Arbeitsverzeichnis.
Kopiert!
1%let name=col6;
2filename odsout '.';
2 Codeblock
DATA STEP Data
Erklärung :
Erstellt den Datensatz 'my_data' mit den Variablen CATEGORY, SERIES (Zeichen) und AMOUNT (numerisch) durch Lesen der über die DATALINES-Anweisung bereitgestellten Daten.
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
Erklärung :
Ändert den Datensatz 'my_data' durch Hinzufügen einer neuen Spalte 'bartotal'. Diese Spalte enthält die Summe von 'amount' für jede 'category', berechnet durch eine SQL-Aggregation.
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
Erklärung :
Ein zweiter DATA STEP, der den Datensatz 'my_data' liest, den Prozentsatz 'catpct' von 'amount' im Verhältnis zu 'bartotal' für jede Beobachtung berechnet und dieser neuen Variablen ein Prozentformat zuweist.
Kopiert!
1DATA my_data; SET my_data;
2FORMAT catpct percent6.0;
3catpct=amount/bartotal;
4RUN;
5 Codeblock
ODS/OPTIONS
Erklärung :
Schließt die Standard-LISTING-Ausgabe. Öffnet ein ODS HTML-Ziel, wobei der Ausgabepfad, der Dateiname ('col6.htm'), ein Titel für die HTML-Seite und der Stil 'htmlblue' angegeben werden. Konfiguriert anschließend die ODS-Grafikoptionen, um PNG-Bilder mit einer bestimmten Größe, ohne Rahmen und mit einer Image Map zu generieren. Schließlich werden zwei Titel für das Diagramm mit Farb-, Größen- und Stileigenschaften definiert.
Kopiert!
1ODS LISTING CLOSE;
2ODS HTML path=odsout body="&name..htm"
3 (title="SGplot 100% Stacked 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 Bar";
10title2 color=gray33 ls=0.5 h=17pt "With 3D Shading";
6 Codeblock
PROC SGPLOT
Erklärung :
Verwendet PROC SGPLOT, um ein gestapeltes Balkendiagramm zu erstellen. Die Balken werden durch 'category' definiert und nach 'series' gestapelt, wobei 'catpct' die Antwortvariable ist. Die Option 'dataskin=sheen' fügt einen 3D-Effekt hinzu. Stil, Farben, Beschriftungen und Achsenattribute werden konfiguriert, um das Erscheinungsbild des Diagramms zu verbessern. Nach der Ausführung wird das ODS HTML-Ziel geschlossen und die LISTING-Ausgabe wieder geöffnet.
Kopiert!
1PROC SGPLOT DATA=my_data noautolegend pad=(left=10% right=15%);
2label catpct='PERCENT';
3styleattrs datacolors=(cx9999ff cx993366 cxffffcc);
4vbar category / response=catpct stat=sum
5 group=series barwidth=.6
6 dataskin=sheen /* <--- basically, added this line! */
7 outlineattrs=(color=black) nostatlabel;
8yaxis
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;
13xaxis
14 labelattrs=(size=16pt weight=bold color=gray33)
15 valueattrs=(size=16pt weight=bold color=gray33)
16 display=(noticks);
17RUN;
18 
19QUIT;
20ODS HTML CLOSE;
21ODS 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.