Python para iniciantes: do zero ao primeiro projeto
Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!
Você já imaginou a possibilidade de criar mapas interativos e profissionais com Python?
A princípio, essa tarefa pode parecer complexa, porém é mais simples do que você imagina. Nos últimos anos, diversas bibliotecas foram desenvolvidas, simplificando consideravelmente esse processo.
Neste tutorial, criaremos um mapa da COVID-19 no Brasil, utilizando Choropleth Maps em Python. Esse tipo de mapa temático colore regiões geográficas para representar a proporção de uma determinada variável estatística relacionada a ela, como densidade populacional, PIB per capita, entre outras. Além disso, usaremos Plotly, uma das melhores bibliotecas de visualização de dados em Python.
Antes de começar a criar mapas interativos e profissionais com Python, é necessário ter os seguintes recursos disponíveis:
Você pode baixar os arquivos necessários para este tutorial pelo Google Drive da Asimov.
O processo de instalação da biblioteca Plotly é muito simples quando utilizamos o pip ou conda. Para iniciar, abra o terminal e digite:
pip install plotly
conda install plotlyPara instalar as dependências para Jupyter Notebook e Jupyter Lab, execute:
pip install jupyterlab "notebook>=5.3" "ipywidgets>=7.5"
conda install jupyterlab "notebook>=5.3" "ipywidgets>=7.5"Para verificar se a instalação foi bem-sucedida, inicie seu Jupyter/JupyterLab e execute o código abaixo. Se conseguir visualizar o gráfico a seguir, a instalação da biblioteca estará correta.
import plotly.graph_objects as go
fig = go.Figure(data=go.Bar(y=[2, 3, 1]))
fig.show()
Para criar os gráficos dos mapas interativos, precisaremos de dois conjuntos de dados adicionais:
De acordo com a Especificação GeoJSON (RFC 7946):
GEOJSON é um formato para codificar uma variedade de estruturas de dados geográficos […]. Um objeto GeoJSON pode representar uma região do espaço (uma geometria), uma entidade limitada (um recurso) ou uma lista de recursos (featureCollection).
Em suma, GEOJSON é um padrão de formatação que nos permite especificar figuras geométricas em gráficos. No Python, definimos esses dados como listas de dicionários, em que cada dicionário contém pelo menos uma chave geometry (com pares de latitude e longitude dos vértices das figuras geométricas desejadas) e uma chave id ou properties (que serve como um identificador).
Segue abaixo um exemplo:
{
"type": "MultiPoint",
"coordinates": [[10.0, 40.0], [40.0, 30.0], [20.0, 20.0], [30.0, 10.0]],
"id": "multi"
}Encontrar arquivos GeoJSON das divisas de países, estados e até mesmo municípios não é uma tarefa difícil. Inclusive, no GitHub você tem acesso a um repositório com diversos arquivos GeoJSON referente ao Brasil.
Dentro da biblioteca Plotly, há várias formas de criar os mesmos gráficos. No entanto, aqui faremos uso do módulo plotly.express, que contém funções capazes de criar gráficos de maneira muito simples, sem a necessidade de editar os elementos em um nível mais baixo da biblioteca.
Assim, iniciamos importando os módulos relevantes:
import plotly.express as px
import pandas as pd
import jsonEm seguida, carregamos os dados:
brazil_states = json.load(open("geojson/brazil_geo.json", "r"))
df_states = pd.read_csv("df_states.csv")O arquivo GeoJSON brazil_states consiste em um dicionário com duas keys: type e features.
A chave feature possui uma lista de dicionários, onde cada elemento segue o formato descrito anteriormente, com as geometrias das divisas dos estados brasileiros, assim como IDs para identificação de cada um deles.
# VARIÁVEL: brazil_states
{'type': 'FeatureCollection',
'features': [{'type': 'Feature',
'id': 'AC',
'properties': {'name': 'Acre'},
'geometry': {'type': 'Polygon',
'coordinates': [[[-73.3325109999999,
-7.324878999999896], [-73.274817, -7.350334], [-72.870164, -7.528881999999896], ...Enquanto isso, o DataFrame df_states contém dados relacionados à COVID-19 por estado brasileiro e por dia, por exemplo: casos, recuperações e óbitos acumulados e na data.

Logo após, em posse desses dados, podemos criar o mapa interativo utilizando o método px.choropleth_mapbox.
fig = px.choropleth_mapbox(
data_frame=df_states,
locations="estado",
geojson=brazil_states,
center={"lat": -16.95, "lon": -47.78},
zoom=3,
color="casosNovos",
color_continuous_scale="Redor",
opacity=0.4,
)
fig.update_layout(height=800)Agora, explicando os parâmetros:
data_frame: o DataFrame contendo os dados estatísticos que desejamos visualizar, além de uma coluna contendo valores idênticos ao que usaremos como id no GEOJSON.locations: o nome da coluna contendo os valores do id. Eles serão usados pela função para casar o GEOJSON com o DataFrame.geojson: a variável contendo o GEOJSON.center: um dicionário com as chaves lat e lon, as quais devem conter as latitudes e longitudes do ponto onde desejamos centrar o mapa (você pode encontrar esses valores no Google Maps).zoom: um inteiro entre 0 a 20, especificando o nível de zoom que desejamos aplicar.color: a coluna do DataFrame contendo o dado estatístico que desejamos observar.color_continuous_scale: uma das strings de escala contínua de cores do Plotly (mais opções aqui).opacity: um valor entre 0 e 1 especificando a opacidade das áreas.mapbox_style: um dos estilos de plot do mapbox. Abaixo estão outras opções:
Após a conclusão do trabalho, o resultado do mapa é o seguinte:

Mas você pode ir além, aproveitando esse mapa para criar um dashboard completo de análise de dados da COVID-19 no Brasil. Portanto, assista à videoaula gratuita abaixo para aprender a construir esse dashboard apenas com Python.
Aproveite também para aprender a criar outros dashboards como esse no treinamento completo da Asimov Academy, com mais de 60 horas de duração, na Trilha Dashboards com Python.
Qualquer dúvida sobre a criação de mapas interativos com Python, deixe um comentário abaixo!
Aprenda sobre variáveis, loops e funções e crie seu primeiro projeto Python em apenas 2 horas!
Saia do zero e analise dados com Python e Pandas neste curso gratuito com certificado!
Aprenda a programar com Python e explore a inteligência artificial! Crie um chatbot prático que interage com seus próprios dados. Comece agora!
O que é IA no futebol? IA no futebol é o uso de sistemas inteligentes para analisar dados do jogo, reconhecer padrões, gerar previsões,…
Se você está pesquisando agentes de IA mais avançados do que um chatbot comum, provavelmente já encontrou dois nomes: OpenClaw e Hermes Agent. Os…
A IA generativa popularizou o uso de chatbots capazes de responder perguntas, escrever textos, resumir documentos e gerar código. Mas uma nova etapa da…
A ampla oferta de temas para o VS Code reforça a flexibilidade da IDE em adaptar a experiência de desenvolvimento às preferências do usuário, favorecendo conforto visual e engajamento sem impactar o desempenho. O ecossistema de extensões oferece opções consolidadas pela comunidade e mecanismos simples de instalação e descoberta, ampliando as possibilidades de personalização do ambiente de trabalho conforme diferentes perfis e contextos de uso.