Construirea unui grafic în straturi
Acum că știi mai multe despre tmap(), hai să construim graficul anterior al populației în straturi și să facem câteva ajustări pentru a-l îmbunătăți. Începi cu un strat tm_shape() care definește datele pe care vrei să le folosești, apoi adaugi un strat tm_fill() pentru a colora poligoanele după variabila population:
tm_shape(countries_spdf) +
tm_fill(col = "population")
Probabil cea mai mare problemă cu graficul rezultat este că scala de culori nu este foarte informativă: prima culoare (galbenul cel mai pal) acoperă toate țările cu o populație mai mică de 200 de milioane! Deoarece scala de culori este asociată stratului tm_fill(), ajustările acestei scale se fac în acest apel. Vei afla mult mai multe despre culori în Capitolul 3, dar deocamdată știe că argumentul style controlează modul în care sunt alese intervalele.
Graficul tău are nevoie și de contururile țărilor. Poți adăuga un strat tm_borders() în acest scop, dar să nu-l facem prea vizual dominant. Un maro ar putea fi o alegere bună.
Avantajul utilizării obiectelor spațiale devine cu adevărat evident atunci când schimbi tipul de grafic. Hai să încercăm și un grafic cu bule, unde dimensiunea bulelor corespunde populației. Dacă ai folosi ggplot2, acest lucru ar presupune o mulțime de transformări ale datelor. Cu tmap, pur și simplu înlocuiești un strat.
Acest exercițiu face parte din cursul
Vizualizarea datelor geospațiale în R
Instrucțiuni pentru exercițiu
- Adaugă
style = "quantile"latm_fill(). Aceasta alege intervalele din scala de culori pe baza unui număr egal de observații în fiecare interval. - La același grafic, adaugă un strat
tm_borders()cucol = "burlywood4". - Creează un nou grafic identic cu primul, dar în loc de
tm_fill()adaugă un strattm_bubbles()cusizemapat la populație.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
library(sp)
library(tmap)
# Add style argument to the tm_fill() call
tm_shape(countries_spdf) +
tm_fill(col = "population") +
# Add a tm_borders() layer
# New plot, with tm_bubbles() instead of tm_fill()