Veröffentlicht am :
Berichterstattung CREATION_INTERNE

Stromverbrauchsverlauf mit GCHART

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Dieses Skript erstellt einen Datensatz zum Verbrauch (kWh) über DATALINES. Anschließend werden benutzerdefinierte Achsenbeschriftungen vorbereitet, indem Text in einem DATA-Schritt verkettet und diese über PROC SQL in einer Makrovariablen gespeichert werden. Schließlich wird eine HTML-Datei mit einem PROC GCHART-Diagramm generiert, das ein hinzugefügtes Logo über einen Anmerkungsdatensatz (ANNO) enthält.
Datenanalyse

Type : CREATION_INTERNE


Die Hauptdaten werden manuell im DATA-Schritt über die DATALINES-Anweisung erstellt.

1 Codeblock
INITIALISATION
Erklärung :
Definition von Makrovariablen für den Dateinamen und das Zieldatum sowie Definition des Ausgabe-Filerefs.
Kopiert!
1%let name=example11;
2filename odsout '.';
3 
4%let targetdate=15sep2003;
2 Codeblock
DATA STEP Data
Erklärung :
Erstellung des Datensatzes 'my_data' mit Datum und kWh-Verbrauch. Erstellung eines Indikators 'billmonth' für das Zieldatum.
Kopiert!
1DATA my_data;
2FORMAT kwh comma5.0;
3FORMAT date mmyy5.;
4INPUT date date9. kwh;
5IF date eq "&targetdate"d THEN billmonth=1;
6ELSE billmonth=0;
7DATALINES;
815sep2002 800
915oct2002 550
1015nov2002 200
1115dec2002 190
1215jan2003 250
1315feb2003 200
1415mar2003 225
1515apr2003 190
1615may2003 325
1715jun2003 350
1815jul2003 675
1915aug2003 775
2015sep2003 875
21;
22RUN;
3 Codeblock
PROC SORT
Erklärung :
Sortieren der Daten nach chronologischem Datum.
Kopiert!
1PROC SORT DATA=my_data out=my_data;
2BY date;
3RUN;
4 Codeblock
DATA STEP Data
Erklärung :
Iterative Konstruktion einer komplexen Zeichenfolge ('axis_text') zur Definition benutzerdefinierter Achsenbeschriftungen (jeder zweite Monat wird angezeigt).
Kopiert!
1DATA my_data; SET my_data;
2LENGTH axis_text $200;
3retain axis_text;
4IF mod(_n_,2)=1 THEN
5 axis_text=trim(left(axis_text))||' t='||trim(left(_n_))||' '||quote(put(date,monname3.));
6ELSE
7 axis_text=trim(left(axis_text))||' t='||trim(left(_n_))||' '||quote(' ');
8RUN;
5 Codeblock
PROC SQL
Erklärung :
Extrahieren der zuvor erstellten vollständigen Beschriftungszeichenfolge in eine Makrovariable :axis_text.
Kopiert!
1 
2PROC SQL;
3select axis_text into :axis_text from my_data having date=max(date);
4QUIT;
5 
6RUN;
7 
6 Codeblock
DATA STEP Data
Erklärung :
Erstellung eines SAS/GRAPH-Anmerkungsdatensatzes zum Einfügen eines Logos ('power_logo.png') in das Diagramm.
Kopiert!
1DATA logo_anno;
2 LENGTH function $8;
3 xsys='3'; ysys='3'; when='a';
4 function='move'; x=0; y=92; OUTPUT;
5 function='image'; x=x+36.4; y=y+7; imgpath='power_logo.png'; style='fit'; OUTPUT;
6RUN;
7 Codeblock
PROC GCHART
Erklärung :
Konfiguration der Grafikoptionen (GOPTIONS), Öffnen des ODS HTML-Ziels und Generieren eines vertikalen Balkendiagramms (VBAR) mit den Daten, Logo-Anmerkungen und benutzerdefinierten Achsen.
Kopiert!
1GOPTIONS DEVICE=png;
2goptions xpixels=480 ypixels=384;
3goptions border;
4
5ODS LISTING CLOSE;
6ODS HTML path=odsout body="&name..htm" (title="Power Bill") style=minimal;
7
8goptions gunit=pct htitle=6 ftitle="albany amt/bold" htext=4.5 ftext="albany amt/bold";
9 
10title1 h=8 " ";
11/* ... titres ... */
12title6 j=c h=6 "kWh Usage History";
13 
14axis1 label=none offset=(5,5) value=( &axis_text );
15axis2 label=none minor=none major=(number=5);
16 
17pattern1 v=x1 c=graybb;
18pattern2 v=x2 c=black;
19 
20PROC GCHART DATA=my_data anno=logo_anno;
21vbar date / discrete type=sum sumvar=kwh
22 subgroup=billmonth nolegend
23 maxis=axis1 raxis=axis2 noframe
24 width=5 space=2.25 coutline=black
25 autoref cref=graydd clipref
26 des="" name="&name";
27RUN;
28 
29QUIT;
30ODS HTML CLOSE;
31ODS 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.