Veröffentlicht am :

Karte der 16 Bundesländer Deutschlands

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Der Prozess beginnt mit der Vorbereitung der Kartendaten aus der 'maps'-Bibliothek. Das Skript führt die Polygone der deutschen Regionen ('maps.germany') mit Informationen über ihre Zugehörigkeit zu den 16 Bundesländern ('maps.germany2') zusammen. Anschließend wird die GREMOVE-Prozedur verwendet, um die internen Grenzen der Regionen aufzulösen, sodass nur die Umrisse der Bundesländer erhalten bleiben. Ein Anmerkungsdatensatz wird dann berechnet, um die Namen der Bundesländer in der Mitte ihres Territoriums auf der Karte zu positionieren. Schließlich generiert die GMAP-Prozedur die endgültige Karte in einer HTML-Datei, wobei jedes Bundesland mit einer eigenen Farbe dargestellt und sein Name angezeigt wird.
Datenanalyse

Type : MIXTE


Das Skript verwendet die Tabellen `maps.germany` und `maps.germany2`, die Systemtabellen sind, die mit dem SAS/GRAPH-Modul geliefert werden. Anschließend werden temporäre Arbeitstabellen (`germany`, `anno_names`) erstellt, um die Daten für die Visualisierung zu aggregieren und vorzubereiten.

1 Codeblock
DATA STEP Data
Erklärung :
Erstellt eine Arbeitstabelle 'germany' aus der Systemtabelle 'maps.germany'. Eine Variable 'original_order' wird hinzugefügt, um die ursprüngliche Reihenfolge der Beobachtungen beizubehalten, was für die spätere Sortierung nützlich sein wird.
Kopiert!
1 
2DATA germany;
3SET maps.germany;
4original_order=_n_;
5RUN;
6 
2 Codeblock
PROC SQL Data
Erklärung :
Verbindet die Arbeitstabelle 'germany' mit der Tabelle 'maps.germany2', um jede Region (id) ihrem jeweiligen Bundesland (state2) zuzuordnen. Das Ergebnis ersetzt die Tabelle 'germany' und wird nach Bundesland sortiert.
Kopiert!
1PROC SQL;
2create TABLE germany as
3select unique germany.*, germany2.state2
4from germany left join maps.germany2
5on germany.id=germany2.id
6order BY state2, original_order;
7QUIT; RUN;
3 Codeblock
PROC GREMOVE Data
Erklärung :
Verwendet die GREMOVE-Prozedur, um die Polygongrenzen innerhalb jeder durch 'state2' definierten Gruppe aufzulösen. Dies bewirkt, dass die Karte der Regionen in eine Karte der 16 Bundesländer umgewandelt wird.
Kopiert!
1PROC GREMOVE DATA=germany out=germany;
2BY state2;
3id id;
4RUN;
4 Codeblock
MACRO / DATA STEP Data
Erklärung :
Die Makros %annomac und %centroid berechnen das geografische Zentrum jedes Bundeslandes, um dort eine Beschriftung zu platzieren. Ein nachfolgender DATA STEP modifiziert diesen Anmerkungsdatensatz, um die Position einiger Bundeslandnamen manuell anzupassen und die Lesbarkeit der endgültigen Karte zu verbessern.
Kopiert!
1%annomac;
2%centroid(germany, anno_names, state2);
3 
4DATA anno_names; SET anno_names;
5LENGTH function $8;
6hsys='3'; when='a'; size=2;
7xsys='2'; ysys='2'; function='move'; OUTPUT;
8/* Give a few of the labels an x/y offset, to move to a better location (x/y values in relative %) */
9x=0; y=0;
10text=trim(left(state2));
11IF text='Brandenburg' THEN y=-1.5;
12IF text='Niedersachsen' THEN y=y+1.5;
13IF text='Sachsen' THEN x=-1;
14xsys='b'; ysys='b'; function='move'; OUTPUT;
15function='cntl2txt'; OUTPUT;
16function='label'; OUTPUT;
17RUN;
5 Codeblock
PROC GMAP
Erklärung :
Konfiguriert die grafische Umgebung (GOPTIONS) und das Ausgabesystem (ODS) zur Generierung einer HTML-Datei. Die GMAP-Prozedur zeichnet anschließend die Choroplethenkarte, basierend auf der Tabelle 'germany' für Polygone und Farben und der Tabelle 'anno_names' zum Überlagern der Textbeschriftungen.
Kopiert!
1GOPTIONS DEVICE=png;
2goptions cback=white border;
3goptions gunit=pct ftitle='albany amt/bold' ftext='albany amt' htitle=4 htext=2.75;
4
5ODS LISTING CLOSE;
6ODS HTML path=odsout body="&name..htm" style=sasweb;
7 
8legend1 position=(right middle) label=none across=1 shape=bar(.15in,.15in);
9 
10title1 ls=1.5 "16 States of Germany";
11 
12PROC GMAP map=germany DATA=germany anno=anno_names;
13id state2;
14choro state2 / discrete coutline=gray legend=legend1
15 des="" name="&name";
16RUN;
17 
18QUIT;
19ODS HTML CLOSE;
20ODS 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.