[UPDATE] Die Grafiken sind in neuen und größeren Versionen auch hier zu finden.

Im vorherigen Beitrag habe ich die deutschen Postleitzahlen visualisiert. Dort konnte man bereits sehr schön sehen, wie sich nur aus den Geo-Koordinaten die Deutschlandkarte abgebildet hat. Mit einer farblichen Unterleung fiel zudem auf, die Postleitzahlen sich nicht an den Ländergrenzen orientieren. Um dies weiter zu verdeutlichen habe ich die Ländergrenzen mit eingezeichnet.

Dazu nehmen wir erneut die Daten aus dem vorherigen Beitrag (“plz”). Das raster-Package ist so nett und gibt uns Zugriff auf die GADM-Datenbank, in welcher alle Grenzen Deutschlands (und natürlich noch die vieler weiterer Staaten) hinterlegt sind.

library(raster)
de_map <- getData('GADM', country="DE", level=1)
de_map_2 <- fortify(de_map, region = "NAME_1")

Die Level-Angabe im ersten Befehl gibt an, wie detailliert die Daten sein sollen: Level 0 beinhaltet nur die Ländergrenzen, Level 1 auch die Grenzen der Bundesländer usw. Sollte fortify nicht sofort klappen, muss einmal der folgende Befehl ausgeführt werden:

gpclibPermit()

Danach kann die Map mittels des folgenden Befehls geplottet werden, natürlich wieder mit ggplot2:

p2 <- ggplot(data= plz) + geom_point(aes(x = lon, y = lat, colour = region), //
  alpha = 0.8, shape = 19, size = 2)
p2 <- p2 + geom_path(data = de_map_2, aes(x = long, y = lat, group = group), //
  colour = "grey20")
p2 <- p2 + theme_bw() + labs(x = NULL, y = NULL) + //
  scale_colour_brewer(palette = "RdYlGn", name = "PLZ")
p2 <- p2 + scale_x_continuous(breaks = NA) + scale_y_continuous(breaks = NA)
p2

Das Ergebnis sieht dann wie folgt aus:

PLZ Deutschland Hier wird noch deutlicher, dass die Postleitzahlen nicht nach Ländern vergeben wurden.