ComeçarComece de graça

Por que a Groenlândia é tão grande?

Olhe o gráfico com mais atenção. Por que a Groenlândia parece maior do que os EUA contíguos se, na verdade, ela tem apenas cerca de um terço do tamanho?

Quando você plota localizações de longitude e latitude nos eixos x e y de um gráfico, está tratando 1 grau de longitude como tendo o mesmo tamanho em qualquer lugar. No entanto, como a Terra é aproximadamente esférica, a distância representada por 1 grau de longitude depende da latitude, variando de 111 km no equador a 0 km nos polos.

A forma como você pega posições em uma esfera e as desenha em um plano bidimensional é descrita por uma projeção. A padrão que você usou aqui (também conhecida como projeção equiretangular) distorce a largura das áreas próximas aos polos. Toda projeção envolve algum tipo de distorção (afinal, uma esfera não é um plano!), mas diferentes projeções tentam preservar propriedades diferentes (por exemplo, áreas, ângulos ou distâncias).

No tmap, tm_shape() recebe um argumento projection que permite trocar as projeções do gráfico.

(Observação: mudar a projeção de um gráfico do ggplot2 é feito usando a função coord_map(). Veja ?coord_map() para mais detalhes.)

Este exercício faz parte do curso

Visualizando dados geoespaciais em R

Ver curso

Instruções do exercício

Para ajudar você a ver as diferenças entre projeções, adicionamos uma camada tm_grid() que inclui linhas de longitude e latitude igualmente espaçadas no gráfico.

Na sua chamada a tm_shape():

  • Experimente a projeção Hobo–Dyer (projection = "hd"), projetada para preservar área.
  • Em um segundo gráfico, experimente a projeção Robinson (projection = "robin"), planejada como um compromisso entre preservar ângulos locais e área.
  • Só por diversão, repita o gráfico anterior, mas adicione tm_style("classic") para ver como o tmap pode controlar todos os aspectos da exibição do mapa.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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
Editar e executar o código