LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Rufe classIntervals() auf values(prop_by_age[["age_18_24"]]) mit n = 5 und style = "pretty" auf. Siehst du das Problem? 130.770 deiner Rasterzellen landen im ersten Intervall.
  • Rufe jetzt classIntervals() wie oben auf, aber mit style = "quantile".
  • Verwende die gleich großen Klassen, indem du die Argumente n und style in die tm_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 du breaks = 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 dem filename "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"
Code bearbeiten und ausführen