Ein Beispiel für Intervallskalen
Kehren wir zu deinem Plot des Anteils der Bevölkerung zurück, der zwischen 18 und 24 Jahren alt ist:
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = vir) +
tm_legend(position = c("right", "bottom"))
Dein Plot war problematisch, weil die meisten Anteile in die unterste Farbstufe fielen und du dadurch kaum Details gesehen hast. Eine Möglichkeit, das zu lösen: Statt den Wertebereich deiner Variable in gleich breite Klassen zu teilen, kannst du ihn in sinnvollere Kategorien aufteilen.
Beginnen wir damit, die tmap-Standardklassen nachzubilden: fünf Kategorien, geschnitten mit "pretty"-Grenzen. Danach kannst du einige andere Methoden ausprobieren, um eine Variable in Intervalle zu schneiden. Die direkte Verwendung der Funktion classIntervals() gibt dir schnell Rückmeldung, wie die Grenzen aussehen, aber am besten probierst du ein Set von Grenzen aus, indem du es plottest.
(Nebenbei bemerkt: Eine weitere Lösung für dieses Problem ist, nach einer Transformation der Variable zu suchen, sodass gleich breite Klassen auf der transformierten Skala sinnvoller sind.)
Diese Übung ist Teil des Kurses
Geodaten in R visualisieren
Anleitung zur Übung
- Rufe
classIntervals()aufvalues(prop_by_age[["age_18_24"]])mitn = 5undstyle = "pretty"auf. Siehst du das Problem? 130.770 deiner Rasterzellen landen im ersten Intervall. - Rufe jetzt
classIntervals()wie oben auf, aber mitstyle = "quantile". - Verwende die gleich großen Klassen, indem du die Argumente
nundstylein dietm_raster()-Ebene deines Plots übergibst. - Erstelle ein Histogramm von
values(prop_by_age[["age_18_24"]]). Wo würdest du die Grenzen setzen? - Erstelle deine eigenen Grenzen in
tm_raster(), indem dubreaks = c(0.025, 0.05, 0.1, 0.2, 0.25, 0.3, 1)angibst. - Speichere deinen finalen Plot als Leaflet-Plot mit
tmap_save()und demfilename"prop_18-24.html".
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
mag <- viridisLite::magma(7)
library(classInt)
# Create 5 "pretty" breaks with classIntervals()
# Create 5 "quantile" breaks with classIntervals()
# Use 5 "quantile" breaks in tm_raster()
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = mag) +
tm_legend(position = c("right", "bottom"))
# Create histogram of proportions
# Use fixed breaks in tm_raster()
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = mag,
style = "fixed")
# Save your plot to "prop_18-24.html"