Café com Código #13: Visualizando Mapas Interativos com Python

Salve Minerador!!, no Café com Código #13 vai mais um dica para você aprender Data Science na pausa para o sagrado cafezinho.

Como sempre de forma rápida e objetiva…Visualizando Mapas Interativos com Python.

Na rapidinha de hoje faremos uma breve introdução a biblioteca Folium para visualização de mapas utilizando Python.

A Folium é uma biblioteca Python de visualização de dados para renderização de mapas, com ela conseguimos plotar gráficos em formato de mapas bem interessantes para explorar nossos dados relacionados a localizações.

Exploramos um pouco dessa biblioteca no artigo Exploratory Data Analysis (EDA): Aprenda Definitivamente como Extrair Valiosos Insights de Bases de Dados Reais onde mostramos um mapa de calor bem interessante sobre reclamações de consumidores, não é por nada não mas vale a pena conferir 😛

Voltando aqui rapidinho para não esfriar o café, vamos instalar a biblioteca utilizando o pip como no comando abaixo.

Com a biblioteca instalada, importamos a biblioteca como você já está acostumado.

Após importar a biblioteca Folium e o Pandas, vejamos como é simples plotar um gráfico de mapas com o código abaixo.

Observe que apenas lendo o código já conseguimos entender como funciona, na primeira linha criamos a variável mapa e instânciamos o mapa com a localização do território brasileiro -15.788497,-47.879873 e o zoom em 4, para visualizar de forma mais macro.. Logo após criamos um marcador com a latitude e longitude da cidade de Belo Horizonte em Minas Gerais e adicionamos ao nosso objeto mapa.

Por fim executamos o objeto para renderizar o gráfico.

mapa-folium

Agora vamos deixar os exemplos mais interessantes utilizando uma base de dados de municípios fornecida pelo IBGE para plotar um mapa com as localizações das cidades brasileiras.

Essa base de dados está disponível no artigo mencionado acima. Veja o código abaixo e vamos as explicações.

mapa-folium-municipios

Na primeira linha fazemos a leitura da base de dados municipiosBrasil.xls transformando em um dataframe utilizando o pandas.

Logo em seguida armazenamos nas variáveis lat e long as coordenadas dos primeiros 500 municípios. Limitamos pois a base de dados contém mais de 21 mil registros e pode ficar um pouco lento para o nosso exemplo.

Após selecionar os dados inicializamos o mapa com a localização do território brasileiro e percorremos cada par de coordenadas e adicionamos um marcador ao mapa com o comando Marker().add_to(mapa).

Vamos a outro exemplo.

Com código acima estamos plotando o mesmo gráfico mas utilizando outro tipo de marcador que neste caso é o HeatMap para trabalhar com mapas de calor, além de definir outro estilo de mapa com o atributo tiles. Veja.

mapa-folium-calor

Interessante hein?

A biblioteca Folium contém diversas opções para trabalhar com mapas e daria um artigo bem completo mostrando suas funcionalidades.

Esse foi mais um Café com Código, toda Quarta as 15h no seu e-mail 😉

Gostou dessa dica? Não esqueça de compartilhar com seus amigos e me conte aqui o que está achando.

Forte abraço!
Felipe Santana.

 

 

  • Sidney Jr. Miranda

    Bom dia Felipe, blza!
    estava testando esse post, mas não funcionou esse código

    mapa = folium.Map(location=[-15.788497,-47.879873],zoom_start=04)
    folium.Marker([-19.9166813,-43.9344931]).add_to(mapa)
    mapa

    observação: as bibliotecas estão instaladas.

    • Felipe Santana

      Tudo bem Sidney e você?
      Você está executando o código no console do Python ou através do Jupyter Notebook?

      Através do Jupyter vai funcionar, caso esteja utilizando no console do Python adicione a linha mapa.save(“mapa.html”) para exportar o mapa para um arquivo html.

      Qualquer dúvida me fala aqui ok?
      Um abraço!

      • Sidney Jr. Miranda

        sim, PyCharm irmão.

        vou testar.

      • Sidney Jr. Miranda

        funcionou, muito obrigado @disqus_qqAjWgiOqZ:disqus

        • Felipe Santana

          Maravilha Sidney, vamos em frente!

  • Ewerton Silva

    Felipe,
    eu tenho arquivos que trazem a latitude e longitude da casa onde as pessoas moram e também do local onde trabalham. Preciso identificar quais os setores censitários do IBGE correspondente tanto à casa quando trabalho.

    Por enquanto estou lendo os shape files do IBGE no R e tenho, por exemplo, o resultado da imagem anexo. Mas como posso identificar em qual setor censitário está uma coordenada geográfica? https://uploads.disquscdn.com/images/9c97f3ec429b5420bad146df20439bce81b286fcb1576ceffa6db3ec69e92176.png