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
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ć, jaktmapmoż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