Zacznij terazZacznij za darmo

Dlaczego Grenlandia jest taka duża?

Przyjrzyj się uważniej wykresowi. Dlaczego Grenlandia wygląda na większą niż kontynentalne USA, choć w rzeczywistości ma zaledwie około jedną trzecią jego powierzchni?

Kiedy nanosimy współrzędne geograficzne (długość i szerokość) na osie x i y wykresu, zakładamy, że 1 stopień długości geograficznej ma wszędzie taki sam rozmiar. Tymczasem, ponieważ Ziemia jest mniej więcej kulista, odległość odpowiadająca 1 stopniowi długości geograficznej zależy od szerokości geograficznej – wynosi 111 km na równiku i spada do 0 km na biegunach.

Sposób, w jaki punkty ze sfery są przenoszone na płaszczyznę dwuwymiarową, opisuje odwzorowanie kartograficzne. Domyślne odwzorowanie użyte tutaj (znane też jako odwzorowanie prostokątne equidystantne) zniekształca szerokość obszarów w pobliżu biegunów. Każde odwzorowanie wiąże się z jakimś zniekształceniem (bo sfery nie da się rozłożyć na płaszczyznę bez błędów!), ale różne odwzorowania starają się zachować różne właściwości (np. powierzchnie, kąty lub odległości).

W pakiecie tmap funkcja tm_shape() przyjmuje argument projection, który pozwala zmienić odwzorowanie użyte na wykresie.

(Uwaga: zmianę odwzorowania w wykresie ggplot2 wykonuje się za pomocą funkcji coord_map(). Więcej szczegółów znajdziesz w ?coord_map().)

To ćwiczenie jest częścią kursu

Wizualizacja danych geoprzestrzennych w R

Zobacz kurs

Instrukcje do ćwiczenia

Aby zobaczyć różnice między odwzorowaniami, dodaliśmy warstwę tm_grid(), która nakłada na wykres równomiernie rozmieszczone linie siatki geograficznej.

Wewnątrz wywołania tm_shape():

  • Wypróbuj odwzorowanie Hobo–Dyer (projection = "hd"), zaprojektowane z myślą o zachowaniu powierzchni.
  • Na drugim wykresie wypróbuj odwzorowanie Robinsona (projection = "robin"), stanowiące kompromis między zachowaniem lokalnych kątów a zachowaniem powierzchni.
  • Dla zabawy powtórz poprzedni wykres, ale dodaj tm_style("classic"), żeby zobaczyć, jak tmap może kontrolować wszystkie aspekty wyglądu mapy.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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
Edytuj i uruchom kod