LoslegenKostenlos loslegen

Choroplethenkarte

Jetzt, da du weißt, wie man Polygone zeichnet, bringen wir deine Polygone auf eine Karte. Denk daran: Du ersetzt deinen ggplot()-Aufruf durch ggmap(), und der ursprüngliche ggplot()-Aufruf wandert in das Argument base_layer(). Danach fügst du wie gewohnt deine Polygon-Ebene hinzu:

ggmap(corvallis_map_bw,
      base_layer = ggplot(ward_sales,
                          aes(lon, lat))) +
  geom_polygon(aes(group = group, fill = ward))

Probier es jetzt in der Konsole aus!

Oh oh, irgendetwas stimmt nicht. Die Bezirke 1, 3 und 8 sehen ausgefranst und falsch aus. Was ist passiert? Ein Teil der Bezirksgrenzen liegt außerhalb des Kartenausschnitts. Aufgrund der Standardeinstellungen in ggmap() werden alle Daten außerhalb der Karte vor dem Plotten verworfen. Dadurch gehen einige Polygonbegrenzungen verloren und die verbleibenden Punkte werden falsch verbunden – die Formen stimmen nicht mehr.

Keine Sorge, es gibt eine Lösung: ggmap() stellt Argumente bereit, um dieses Verhalten zu steuern. Die Argumente extent = "normal" zusammen mit maprange = FALSE erzwingen, dass für die Plotgrenzen der Datenbereich statt des Kartenbereichs verwendet wird.

Diese Übung ist Teil des Kurses

Geodaten in R visualisieren

Kurs anzeigen

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Fix the polygon cropping
ggmap(corvallis_map_bw, 
      base_layer = ggplot(ward_sales, aes(lon, lat))) +
  geom_polygon(aes(group = group, fill = ward))
Code bearbeiten und ausführen