Kom igångKom igång gratis

Varför är Grönland så stort?

Ta en närmare titt på kartan. Varför ser Grönland ut att vara större än USA när det i själva verket bara är ungefär en tredjedel så stort?

När du ritar ut longitud- och latitudpositioner på x- och y-axlarna i ett diagram behandlar du 1 grads longitud som lika lång oavsett var på jorden du befinner dig. Men eftersom jorden är ungefär sfärisk varierar den faktiska distansen som motsvarar 1 grads longitud beroende på latituden – från 111 km vid ekvatorn till 0 km vid polerna.

Det sätt på vilket positioner på en sfär återges i ett tvådimensionellt plan kallas för en projektion. Den standardprojektion du har använt här (även känd som ekvidistant cylinderprojektion, eller Equirectangular projection) förvränger bredden på områden nära polerna. Alla projektioner innebär någon form av förvrängning – en sfär kan inte avbildas exakt i ett plant koordinatsystem – men olika projektioner prioriterar att bevara olika egenskaper, till exempel areor, vinklar eller avstånd.

I tmap tar tm_shape() emot argumentet projection, som låter dig byta projektion för kartan.

(Obs: för att ändra projektion i ett ggplot2-diagram använder du funktionen coord_map(). Se ?coord_map() för mer information.)

Den här övningen är en del av kursen

Visualisering av geospatial data i R

Visa kurs

Övningsinstruktioner

Vi har lagt till ett tm_grid()-lager som ritar ut jämnt fördelade longitud- och latitudlinjer i kartan, så att du lättare kan se skillnaderna mellan projektionerna.

Inuti ditt tm_shape()-anrop:

  • Prova en Hobo–Dyer-projektion (projection = "hd"), som är utformad för att bevara areor.
  • I ett andra diagram, prova en Robinson-projektion (projection = "robin"), som är utformad som en kompromiss mellan att bevara lokala vinklar och areor.
  • Bara för skojs skull: upprepa föregående diagram, men lägg till tm_style("classic") för att se hur tmap kan styra alla delar av kartans utseende.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

library(sp)
library(tmap)

# Switch to a Hobo–Dyer projection
tm_shape(countries_spdf) +
  tm_grid(n.x = 11, n.y = 11) +
  tm_fill(col = "population", style = "quantile")  +
  tm_borders(col = "burlywood4") 

# Switch to a Robinson projection
tm_shape(countries_spdf) +
  tm_grid(n.x = 11, n.y = 11) +
  tm_fill(col = "population", style = "quantile")  +
  tm_borders(col = "burlywood4") 

# Add tm_style("classic") to your plot
Redigera och kör kod