Mapa coroplético
Agora que você já entendeu como desenhar polígonos, vamos colocar seus polígonos em um mapa. Lembre-se: você substitui a chamada a ggplot() por uma chamada a ggmap(), move a chamada original de ggplot() para o argumento base_layer(), e então adiciona a camada de polígono como de costume:
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales,
aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))
Experimente isso no console agora!
Opa, algo não parece certo. Os distritos 1, 3 e 8 ficaram recortados e estranhos. O que aconteceu? Parte dos limites desses distritos está além do limite do mapa. Pelas configurações padrão de ggmap(), qualquer dado fora do mapa é descartado antes de plotar, então alguns limites de polígonos são perdidos e, quando os pontos restantes são conectados, você obtém formas erradas.
Não se preocupe, há uma solução: ggmap() oferece alguns argumentos para controlar esse comportamento. Os argumentos extent = "normal" juntamente com maprange = FALSE forçam o gráfico a usar o alcance dos dados, e não o do mapa, para definir os limites da plotagem.
Este exercício faz parte do curso
Visualizando dados geoespaciais em R
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Fix the polygon cropping
ggmap(corvallis_map_bw,
base_layer = ggplot(ward_sales, aes(lon, lat))) +
geom_polygon(aes(group = group, fill = ward))