Przykład skali interwałowej
Wróćmy do wykresu przedstawiającego udział populacji w wieku od 18 do 24 lat:
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = vir) +
tm_legend(position = c("right", "bottom"))
Wykres był problematyczny, bo większość proporcji trafiała do najniższego przedziału kolorystycznego – w efekcie na mapie nie było widać zbyt wielu szczegółów. Jednym ze sposobów rozwiązania tego problemu jest rezygnacja z podziału zakresu zmiennej na przedziały równej długości na rzecz bardziej użytecznych kategorii.
Zacznijmy od odtworzenia domyślnych przedziałów pakietu tmap: pięć kategorii wyznaczonych metodą "pretty". Następnie wypróbujesz kilka innych metod podziału zmiennej na przedziały. Wywołanie funkcji classIntervals() bezpośrednio daje szybką informację zwrotną o tym, gdzie wypadną podziały – jednak najlepszym sposobem przetestowania zestawu przedziałów jest ich wizualizacja.
(Na marginesie: innym podejściem do tego rodzaju problemu jest znalezienie odpowiedniej transformacji zmiennej, tak aby przedziały równej długości na przekształconej skali były bardziej użyteczne.)
To ćwiczenie jest częścią kursu
Wizualizacja danych geoprzestrzennych w R
Instrukcje do ćwiczenia
- Wywołaj
classIntervals()navalues(prop_by_age[["age_18_24"]])z argumentamin = 5istyle = "pretty". Widzisz problem? Aż 130 770 komórek siatki trafia do pierwszego przedziału. - Wywołaj
classIntervals()jak powyżej, ale z argumentemstyle = "quantile". - Zastosuj przedziały o równej liczebności, przekazując argumenty
nistyledo warstwytm_raster()na wykresie. - Utwórz histogram dla
values(prop_by_age[["age_18_24"]]). Gdzie chciałbyś wyznaczyć podziały? - Zdefiniuj własne podziały w
tm_raster(), podającbreaks = c(0.025, 0.05, 0.1, 0.2, 0.25, 0.3, 1). - Zapisz ostateczny wykres jako wykres leaflet, używając
tmap_save()z argumentemfilenameo wartości"prop_18-24.html".
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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"