Sitemap
Filipe Medeiros

Filipe Medeiros

Choropleth Map dos estados Brasileiros usando Plotly Express

5 min readNov 24, 2020

--

Esse artigo e suas análises foram feitas por @filipegmedeiros e Pedro Carvalho de forma Pair Programming, ou seja, trabalhamos em conjunto e resolvendo os mesmos problemas simultaneamente.

Introdução

Uma das razões que me motivou a fazer este post, foi que não achei uma forma fácil no Google de criar um Choropleth Map do Brasil utilizando a ferramenta Plotly.express. Porque a maioria dos exemplos de plotagens desse gráfico são baseados apenas nos Estados Unidos…

Esse texto é atrelado a matéria Ciência de Dados ministrada por Ivanovitch Silva na Universidade Federal do Rio Grande do Norte (UFRN). Devido a isso, foi uma ótima oportunidade para que eu e Pedro pudéssemos pesquisar uma forma facilitadora de gerar o gráfico :)

Desafio

O desafio proposto pela matéria era fazer um gráfico interativo e utilizar o Dash App do Plotly. Mas realmente, o nosso foco foi conseguir fazer esse Choropleth de forma mais fácil possível.

Objetivo

Se você olhar os exemplos do Choropleth no próprio Plotly ou na Web, em geral, você irá encontrar exemplos dos mapas para os Estados Unidos. Inclusive, se você for usar o americano, é um facilitador enorme, pois o mapa da América do Norte já está embutido no código… Fazendo que você consiga gerar em uma única linha de código o Choropleth dos EUA.

Das soluções que achamos, a melhor estava na “cara”, ou seja. Na própria documentação do Plotly.

Isto é a seção sobre como plotar o Choropleth usando GeoJson

Press enter or click to view image in full size
Documentação do Plotly sobre GeoJson

O GeoJSON é um formato projetado para representar recursos geográficos de forma simples, baseado no Json. Onde nos seus atributos, tem as coordenadas (latitude,longitude) do objeto especificado.

Com isso, todo o processo complexo de plotar o Choropleth, se tornou bem simples.

O primeiro de tudo, é ter o arquivo geoJSON referente ao Brasil. Ele está disponível aqui.

Para fazer o gráfico do Título, foi gerado um Data Frame simples:

Lendo o GeoJson do Brasil:

Press enter or click to view image in full size

Então podemos já usar o Choropleth do Plotly.express sem muita dificuldade:

Press enter or click to view image in full size

Basta apenas utilizar o campo geojson apontado para o arquivo GeoJson do Brasil e colocar o escopo como South America.

O campo locations faz referência ao ID do GeoJson, no nosso caso, o ID é as siglas dos estado (“RN”, “BA”…)

Gerando o seguinte gráfico:

Para a segunda parte, iremos utilizar os dados de queimadas na Amazônia Legal(Compreende a Amazônia Legal os seguintes estados: Acre, Amapá, Pará, Amazonas, Rondônia, Roraima, Mato Grosso, Tocantins e Maranhão) obtidos na plataforma Kaggle — Forest Fires in Brazil.

Get Filipe Medeiros’s stories in your inbox

Join Medium for free to get updates from this writer.

Para o pré processamento realizamos a renomeação das colunas e adição de siglas representativas dos estados.

Press enter or click to view image in full size

Gerando o seguinte DataFrame:

Como a intenção é utilizar o mapa de Choropleth, fizemos o agrupamento dos estados e o somatórios dos dados de queimada em todos os anos.

Press enter or click to view image in full size

Como melhor forma de visualização dos dados, realizamos a construção do gráfico de barras com degradê de cores.

Press enter or click to view image in full size

Destacando o grande o Mato Grosso por possuir valores altíssimos de aproximadamente 96 mil queimadas. Se comparado com o segundo lugar que é Paraíba ele possui um diferencial de cerca de 44 mil.

Representar isso em Choropleth se torna mai simples se seguirmos o mesmo processo do primeiro apresentado.

Press enter or click to view image in full size

Para finalizar iremos criar a disponibilização dos gráficos gerados em uma página web, utilizando a ferramenta Dash da biblioteca Plotly.

Inicialmente como esse projeto foi desenvolvido no Google Collaboratory, tivemos a necessidade de configurar um túnel de acesso ao servidor que iremos criar no notebook para o usuário externo. Para isso utilizamos o Ngrok, como o foco deste artigo não é sua configuração e uso, não iremos detalhes ou explicar as linhas de código e sua função.

Para subir um servidor Dash iremos inicialmente criar um arquivo executável python que possuirá toda configuração da aplicação juntamente com a criação dos gráficos. Para isso utilizamos a função “%%writefile” que irá transcrever todas as linhas da célula do notebook para um arquivo, no nosso caso my_dash_app.py. Seguimos com as importações utilizadas na aplicação e criação do dash na variável app.

No meio do código realizamos toda a tratativa dos dados e geração da figura, que seria o gráfico em barras e da figura 2 que teremos o plot do mapa do brasil.

Press enter or click to view image in full size

Configuramos o layout da nossa aplicação a partir de tags Html em dash_html_components. Inserindo título, subtítulo e os graficos.

Press enter or click to view image in full size

Por fim, como todo executável python, criamos a função main e realizamos o comando run server da classe Dash. Em um célula separada iremos obter o tunnel de acesso e iremos rodar o nosso aquivo my_dash_app.py.

Como resultado foi gerado nossa página web com gráficos dinâmicos e informações de cabeçalhos configuradas.

Press enter or click to view image in full size

Conclusão

De forma geral conseguimos desenvolver a construção do Choropleth Map do Brasil utilizando a ferramenta Plotly.express. Além de apresentar de forma prática a utilização desse gráficos e disponibilização em ambiente web com a utilização da ferramenta Dash. Todos os dados e notebooks estão disponíveis no Github.

--

--