Construindo um gráfico em camadas
Agora que você sabe um pouco mais sobre tmap(), vamos construir seu gráfico anterior de população em camadas e fazer alguns ajustes para melhorá-lo. Você começa com uma camada tm_shape() que define os dados que quer usar e, em seguida, adiciona uma camada tm_fill() para colorir seus polígonos usando a variável population:
tm_shape(countries_spdf) +
tm_fill(col = "population")
Provavelmente o maior problema do gráfico resultante é que a escala de cores não é muito informativa: a primeira cor (amarelo bem claro) cobre todos os países com população menor que 200 milhões! Como a escala de cores está associada à camada tm_fill(), os ajustes nessa escala acontecem nessa chamada. Você vai aprender muito mais sobre cores no Capítulo 3, mas por enquanto, saiba que o argumento style controla como os intervalos (breaks) são escolhidos.
Seu gráfico também precisa de contornos dos países. Você pode adicionar uma camada tm_borders() para isso, mas vamos evitar que eles fiquem muito fortes visualmente. Talvez um tom marrom fique legal.
A vantagem de usar objetos espaciais fica bem clara quando você troca o tipo de gráfico que está fazendo. Vamos também testar um gráfico de bolhas em que o tamanho das bolhas corresponde à população. Se você estivesse usando ggplot2, isso exigiria bastante transformação dos dados. Com tmap, você só troca uma camada.
Este exercício faz parte do curso
Visualizando dados geoespaciais em R
Instruções do exercício
- Adicione
style = "quantile"atm_fill(). Isso escolhe os intervalos da escala de cores com base em quantidades iguais de observações em cada faixa. - No mesmo gráfico, adicione uma camada
tm_borders()comcol = "burlywood4". - Crie um novo gráfico igual ao primeiro, mas em vez de
tm_fill()adicione uma camadatm_bubbles()comsizemapeado para population.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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()