Warum ist Grönland so groß?
Schau dir die Grafik genauer an. Warum wirkt Grönland größer als die zusammenhängenden USA, obwohl es tatsächlich nur etwa ein Drittel so groß ist?
Wenn du Längen- und Breitengrade auf den x- und y-Achsen einer Grafik darstellst, behandelst du 1 Grad Länge überall als gleich groß. Da die Erde aber ungefähr kugelförmig ist, hängt die durch 1 Grad Länge beschriebene Distanz von deiner Breite ab und variiert von 111 km am Äquator bis zu 0 km an den Polen.
Die Art und Weise, wie du Positionen auf einer Kugel nimmst und sie in einer zweidimensionalen Ebene darstellst, wird durch eine Projektion beschrieben. Der hier verwendete Standard (auch bekannt als Equirectangular projection) verzerrt die Breite von Flächen in Polnähe. Jede Projektion bringt eine gewisse Verzerrung mit sich (eine Kugel ist nun mal keine Ebene!), aber unterschiedliche Projektionen versuchen, verschiedene Eigenschaften zu bewahren (z. B. Flächen, Winkel oder Distanzen).
In tmap nimmt tm_shape() ein Argument projection entgegen, mit dem du die Projektion für die Grafik wechseln kannst.
(Hinweis: Bei ggplot2 änderst du die Projektion mit der Funktion coord_map(). Siehe ?coord_map() für Details.)
Diese Übung ist Teil des Kurses
Geodaten in R visualisieren
Anleitung zur Übung
Damit du die Unterschiede zwischen Projektionen besser siehst, haben wir eine tm_grid()-Ebene hinzugefügt, die gleichmäßig verteilte Längen- und Breitengrade in die Karte einzeichnet.
In deinem tm_shape()-Aufruf:
- Probiere eine Hobo–Dyer-Projektion (
projection = "hd"), die die Flächen erhält. - Erstelle in einer zweiten Grafik eine Robinson-Projektion (
projection = "robin"), die einen Kompromiss zwischen der Erhaltung lokaler Winkel und Flächen darstellt. - Und zum Spaß: Wiederhole die vorherige Grafik und füge
tm_style("classic")hinzu, um zu sehen, wietmapalle Aspekte der Kartendarstellung steuern kann.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
library(sp)
library(tmap)
# Switch to a Hobo–Dyer projection
tm_shape(countries_spdf) +
tm_grid(n.x = 11, n.y = 11) +
tm_fill(col = "population", style = "quantile") +
tm_borders(col = "burlywood4")
# Switch to a Robinson projection
tm_shape(countries_spdf) +
tm_grid(n.x = 11, n.y = 11) +
tm_fill(col = "population", style = "quantile") +
tm_borders(col = "burlywood4")
# Add tm_style("classic") to your plot