Veröffentlicht am :
Berichterstattung CREATION_INTERNE

Balkendiagramm mit Achsenunterbrechungen

Dieser Code ist auch verfügbar auf: English Français
Wartet auf Validierung
Das Skript beginnt mit der Erstellung eines 'plantProd'-Datensatzes, der Produktionsdaten für verschiedene Standorte und Zeiträume enthält. Ein Trick wird verwendet, um Unterbrechungen in der X-Achse des Diagramms zu erzeugen: Die Punkte in der Variablen 'Time' werden durch unteilbare Leerzeichen ersetzt. Anschließend definiert eine PROC TEMPLATE-Prozedur ein benutzerdefiniertes Grafikmodell ('chunked'), das ein Balkendiagramm (BarChartParm) und ein Liniendiagramm (SeriesPlot) überlagert. Schließlich verwendet PROC SGRENDER dieses Modell und die Daten, um das endgültige Diagramm zu generieren, und zeigt, wie Kategorien visuell auf einer diskreten Achse getrennt werden können.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden direkt im SAS-Skript über einen DATA STEP und die DATALINES-Anweisung erstellt.

1 Codeblock
DATA STEP Data
Erklärung :
Dieser DATA STEP-Block erstellt die Tabelle 'plantProd'. Er liest Rohdaten über 'datalines', definiert Variablenattribute (Beschriftungen, Formate) und ersetzt Punkte in der Variablen 'Time' durch unteilbare Leerzeichen ('A0'x). Diese Substitution ist eine Technik, um Abstände auf einer diskreten Achse in einem SG-Diagramm zu erzwingen.
Kopiert!
1%let nbsp='A0'x; /* ASCII: ’A0’x, UTF-8: ’C2A0’x, EBCDIC: ’41’x */
2 
3DATA plantProd;
4 attrib prod label='Production'
5 prod_pct label='Production %' FORMAT=percent5.2;
6 INPUT prod prod_pct Time $ Site $;
7 Time=translate(Time,  ., '.'); /* map '.' to non-breaking space */
8 DATALINES;
9321 0.0334 w01 US64
10373 0.0173 w01 CA41
11218 0.0367 w08 US64
12420 0.0188 w08 CA41
13117 0.0163 w16 US64
14461 0.0190 w16 CA41
1564 0.0441 w24 US64
16320 0.0208 w24 CA41
17156 0.0261 w32 US64
18620 0.0116 w32 CA41
19115 0.0193 w40 US64
20700 0.0058 w40 CA41
21110 0.0091 w48 US64
22642 0.0039 w48 CA41
23157 0.0099 w52 US64
24586 0.0012 w52 CA41
25. . .. US64
26. . .. CA41
274657 0.0315 Q1 US64
282491 0.0162 Q1 CA41
291434 0.0251 Q2 US64
302147 0.0112 Q2 CA41
311696 0.0314 Q3 US64
323206 0.0155 Q3 CA41
332895 0.0399 Q4 US64
344174 0.0226 Q4 CA41
35. . ... US64
36. . ... CA41
376091 0.0294 H1 US64
384638 0.0145 H1 CA41
394591 0.0364 H2 US64
407380 0.0197 H2 CA41
41;
42RUN;
2 Codeblock
PROC TEMPLATE
Erklärung :
Dieser Block definiert ein statistisches Grafikmodell namens 'chunked' mit PROC TEMPLATE. Das Modell überlagert ein Balkendiagramm (BarChartParm) und ein Liniendiagramm (SeriesPlot). Die X-Achse ist als 'diskret' konfiguriert, um jeden 'Time'-Wert als separate Kategorie zu behandeln. Die sekundäre Y-Achse (Y2) wird für die Prozentkurve verwendet.
Kopiert!
1PROC TEMPLATE;
2 define statgraph chunked;
3 beginGraph;
4 entryTitle "Categorical Axis with Gaps" ;
5 layout overlay / xAxisopts=( display=(tickvalues line) type=discrete )
6 yAxisopts=( griddisplay=on offsetmin=0 )
7 y2Axisopts=( offsetmin=0 );
8 BarChartParm X=time Y=prod / group=Site name="bar" fillAttrs=(transparency=0.2);
9 SeriesPlot X=time Y=prod_pct / group=Site display=all break=true yaxis=y2
10 markerattrs=(symbol=squareFilled)
11 lineattrs=(pattern=solid thickness=2) ;
12
13 DiscreteLegend "bar" / title="Site:";
14 endlayout;
15 entryFootnote halign=left
16 "Uses non-breaking spaces to add axis gaps" ;
17 endgraph;
18 END;
19RUN;
3 Codeblock
PROC SGRENDER
Erklärung :
Diese Prozedur führt das Rendering des Diagramms aus. Sie wendet das zuvor definierte 'chunked'-Modell auf den 'plantProd'-Datensatz an, um das endgültige Diagramm zu generieren, das die Produktion nach Standort und Zeitraum mit visuellen Unterbrechungen zeigt.
Kopiert!
1 
2PROC SGRENDER template=chunked
3DATA=plantProd;
4RUN;
5 
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.