Veröffentlicht am :
Berichterstattung INTERNE_ERSTELLUNG

Verkaufsvisualisierung mit benutzerdefinierten Bildmarkierungen

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript erstellt einen 'sales'-Datensatz, der Verkaufsleistungen nach Geschlecht enthält. Anschließend wird die SGPLOT-Prozedur verwendet, um diese Daten zu visualisieren. Die Besonderheit liegt in der Verwendung der SYMBOLIMAGE-Anweisung, um externe Bilder (lokale PNG-Dateien) mit Statuswerten ('Bad', 'Good', 'Great') zu verknüpfen, wodurch eine bedingte visuelle Hervorhebung entsteht. Das Skript generiert zwei Versionen des Diagramms, wobei die zweite eine zusätzliche 'Band'-Logik hinzufügt.
Datenanalyse

Type : INTERNE_ERSTELLUNG


Die Daten werden manuell über die DATALINES-Anweisung im DATA-Schritt erstellt. Hinweis: Das Skript verweist auf Windows-Bildpfade (C:\), die für eine SAS Viya (Linux)-Umgebung angepasst werden müssen.

1 Codeblock
ODS
Erklärung :
Konfiguration der ODS-Ausgabe (Output Delivery System) zur Definition des Ausgabepfades für Grafiken und der Auflösung (DPI).
Kopiert!
1%let gpath='.';
2%let dpi=200;
3ods html close;
4ods listing gpath=&gpath image_dpi=&dpi;
2 Codeblock
DATA STEP Data
Erklärung :
Erstellung der Tabelle 'sales'. Berechnung bedingter Variablen (Status, Ribbon) und Positionen für grafische Markierungen (ys, yr) basierend auf dem Verkaufsvolumen.
Kopiert!
1DATA sales;
2 LENGTH STATUS $5 Ribbon $3;
3 INPUT Name $ Gender $ Sales;
4 
5 STATUS='Bad';
6 IF sales > 50 THEN STATUS='Good';
7 IF sales >= 100 THEN STATUS='Great';
8 
9 Ribbon=ifc(sales > 110, 'Yes', '');
10 
11 ys=sales-10;
12 IF ribbon='Yes' THEN yr=sales-35;
13 
14 DATALINES;
15Pat Female 100
16Bob Male 76
17Cody Male 50
18Sue Female 120
19Val Female 70
20;
21RUN;
3 Codeblock
PROC PRINT
Erklärung :
Einfache Anzeige des erstellten Datensatzes zur Überprüfung.
Kopiert!
1PROC PRINT;RUN;
4 Codeblock
PROC SGPLOT
Erklärung :
Erstellung des ersten kombinierten Diagramms. Verwendet VBARPARM für Balken und SCATTER zur Platzierung der durch SYMBOLIMAGE definierten Bilder in Abhängigkeit vom Status.
Kopiert!
1ods graphics / reset attrpriority=none width=5in height=3in imagename='Conditional';
2title 'Sales and Status by Sales Person';
3PROC SGPLOT DATA=sales;
4 symbolimage name=bad image="C:\Sad_Tran.png" / scale=1;
5 symbolimage name=good image="C:\Happy_Tran.png" / scale=1;
6 symbolimage name=great image="C:\VeryHappy_Tran.png" / scale=1;
7 styleattrs datasymbols=(great good bad) datacolors=(pink cx4f5faf);
8 
9 vbarparm category=name response=sales / group=gender dataskin=gloss
10 filltype=gradient groupdisplay=cluster;
11 scatter x=name y=ys / group=STATUS markerattrs=(size=30);
12 yaxis offsetmin=0 offsetmax=0 grid;
13 xaxis display=(nolabel) offsetmin=0.1 offsetmax=0.1;
14RUN;
5 Codeblock
PROC SGPLOT
Erklärung :
Erstellung des zweiten Diagramms. Fügt eine zusätzliche Ebene hinzu, um ein Band (Bild 'rib') für die besten Verkäufe anzuzeigen, zusätzlich zu den Status-Emoticons.
Kopiert!
1ods graphics / reset attrpriority=none width=5in height=3in imagename='Conditional2';
2title 'Sales and Status by Sales Person';
3PROC SGPLOT DATA=sales;
4 symbolimage name=bad image="C:\Sad_Tran.png";
5 symbolimage name=good image="C:\Happy_Tran.png";
6 symbolimage name=great image="C:\VeryHappy_Tran.png";
7 symbolimage name=rib image="C:\Blue_Ribbon_Tran.png" / rotate=20;
8 styleattrs datasymbols=(great good bad rib) datacolors=(pink cx4f5faf);
9 
10 vbarparm category=name response=sales / fillattrs=(color=white);
11 vbarparm category=name response=sales / group=gender dataskin=gloss
12 filltype=gradient groupdisplay=cluster;
13 scatter x=name y=ys / group=STATUS markerattrs=(size=30);
14 scatter x=name y=yr / markerattrs=graphdata4(size=75) discreteoffset=0.25;
15 yaxis offsetmin=0 offsetmax=0 grid;
16 xaxis display=(nolabel) offsetmin=0.1 offsetmax=0.1;
17RUN;
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 : http://blogs.sas.com/content/graphicallyspeaking/2015/04/12/conditional-highlighting-2/