Een voorbeeld van een intervalschaal
Laten we teruggaan naar je plot van het aandeel van de bevolking dat tussen 18 en 24 is:
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = vir) +
tm_legend(position = c("right", "bottom"))
Je plot was problematisch omdat de meeste aandelen in het laagste kleurlevel vielen en je daardoor weinig detail zag. Een manier om dit op te lossen is: in plaats van het bereik van je variabele op te delen in bakken van gelijke lengte, kun je het opdelen in nuttigere categorieën.
Laten we beginnen met het repliceren van de standaardbakken van tmap: vijf categorieën, gesneden met "pretty" breaks. Daarna kun je een paar andere methoden proberen om een variabele in intervallen op te delen. Door de functie classIntervals() direct te gebruiken, krijg je snel feedback over wat de breaks zullen zijn, maar de beste manier om een set breaks te proberen is om ze te plotten.
(Terzijde: een andere manier om dit soort probleem op te lossen is te zoeken naar een transformatie van de variabele, zodat bakken van gelijke lengte op de getransformeerde schaal nuttiger zijn.)
Deze oefening maakt deel uit van de cursus
Georuimtelijke data visualiseren in R
Oefeninstructies
- Roep
classIntervals()aan opvalues(prop_by_age[["age_18_24"]])metn = 5enstyle = "pretty". Zie je het probleem? 130.770 van je gridcellen komen in de eerste bak terecht. - Roep nu
classIntervals()opnieuw aan zoals hierboven, maar metstyle = "quantile". - Gebruik de gelijke-omvang-bakken door de argumenten
nenstyledoor te geven aan detm_raster()-laag van je plot. - Maak een histogram van
values(prop_by_age[["age_18_24"]]). Waar zou jij de breaks leggen? - Maak je eigen breaks in
tm_raster()doorbreaks = c(0.025, 0.05, 0.1, 0.2, 0.25, 0.3, 1)op te geven. - Sla je uiteindelijke plot op als een leaflet-plot met
tmap_save()en defilename"prop_18-24.html".
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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"