Pular para o conteúdo principal
InicioTutoriaisPython

Guia passo a passo para criar mapas em Python usando a biblioteca Plotly

Faça seus dados se destacarem com mapas impressionantes criados com Plotly em Python
abr. de 2024  · 7 min leer

Expectativa de vida por país

Os mapas têm sido usados há séculos para ajudar as pessoas a navegar e entender seus arredores. Na era do big data, os mapas se tornaram uma ferramenta essencial para a visualização de dados. Eles nos permitem visualizar os dados de uma forma intuitiva, interativa e fácil de entender. Os mapas podem nos ajudar a identificar padrões e relacionamentos que podem ser difíceis de ver em outros tipos de visualizações.

O Plotly é uma biblioteca avançada de visualização de dados para Python que permite criar uma grande variedade de visualizações interativas, inclusive mapas. Uma das vantagens do Plotly é que ele foi projetado para funcionar perfeitamente com outras bibliotecas Python, como Pandas e NumPy. Isso facilita a importação e a manipulação de dados e a criação de visualizações personalizadas de acordo com suas necessidades específicas. Se você quiser aprender Plotly, confira nosso curso Introdução à visualização de dados com Plotly em Python.

Neste tutorial, você aprenderá passo a passo como criar e personalizar mapas simples e interativos usando o Plotly em Python. Você também aprenderá a criar mapas Choropleth, um tipo específico de mapa que usa código de cores para representar dados de áreas geográficas específicas, como países, estados ou cidades.

Visualizações de mapas comuns do Plotly

Vamos começar examinando alguns dos diferentes tipos de mapas do Plotly que você pode criar.

ScatterGeo Plot

A função Scattergeo() é usada para criar um gráfico de dispersão em um mapa geográfico. Isso significa que ele pode ajudá-lo a traçar pontos em um mapa em que cada ponto representa uma localização geográfica específica, como uma cidade ou um ponto de referência.

Por exemplo, se você tiver um conjunto de dados que contenha as coordenadas de latitude e longitude de diferentes cidades do mundo, poderá usar Scattergeo() para plotar cada cidade em um mapa mundial.

Cada ponto no mapa representará a localização de uma cidade específica, e você pode personalizar o tamanho, a cor e a forma de cada ponto para representar diferentes características das cidades, como população ou temperatura.

Essa função é comumente usada em aplicativos de visualização e análise de dados, como previsão do tempo, análise populacional e mapeamento de negócios. Ele pode ajudá-lo a visualizar os dados de forma mais significativa, mostrando a distribuição espacial dos pontos de dados e destacando padrões ou tendências que podem não ser visíveis em uma tabela ou gráfico.

Exemplo de criação de um gráfico ScatterGeo no Plotly

import plotly.express as px
import pandas as pd


# Import data from USGS
data = pd.read_csv('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_month.csv')


# Drop rows with missing or invalid values in the 'mag' column
data = data.dropna(subset=['mag'])
data = data[data.mag >= 0]


# Create scatter map
fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', #size='mag',
                     title='Earthquakes Around the World')
fig.show()

Saída

primeira saída do plotly

Este exemplo de código usa o site Plotly para criar um mapa geográfico interativo de locais de terremotos em todo o mundo. Ele importa dados de terremotos do site do USGS para um DataFrame do pandas e elimina todas as linhas com valores de magnitude ausentes ou inválidos.

Em seguida, o código usa o método px.scatter_geo para criar um mapa de dispersão que mostra as localizações dos terremotos, com os terremotos maiores mostrados em cores mais escuras. O parâmetro hover_name é definido para mostrar o nome do local ao passar o mouse sobre um marcador.

Por fim, o código define o título do mapa e exibe o mapa usando fig.show(). Esse tipo de mapa pode ser usado para explorar padrões de terremotos e obter informações sobre a atividade sísmica global.

Personalização de gráficos básicos

1. Alterar a escala de cores: O parâmetro color na função scatter_geo mapeia a magnitude dos terremotos para a cor dos marcadores. Você pode personalizar a escala de cores para representar melhor os valores de magnitude.

fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', color_continuous_scale='reds',
                     title='Earthquakes Around the World')
fig.show()

Saída:

Saída 2

2. Alterar o tamanho do marcador: É possível personalizar o tamanho dos marcadores para representar melhor a magnitude dos terremotos.

fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', size='mag', size_max=10,
                     title='Earthquakes Around the World')
fig.show()

Saída:

Saída 3

3. Altere a cor do plano de fundo: Você pode alterar a cor de fundo do mapa para torná-lo mais atraente visualmente.

fig = px.scatter_geo(data, lat='latitude', lon='longitude', color='mag',
                     hover_name='place', color_continuous_scale='reds',
                     title='Earthquakes Around the World')
fig.update_layout(geo=dict(bgcolor='black'))
fig.show()

Saída 4

Se você quiser saber mais sobre as possibilidades de visualização e personalização avançada no Plotly, confira nosso tutorial Python Plotly Express: Unlock Beautiful Visualizations por Bekhruz Tuychiev.

Salvar o mapa como um arquivo HTML interativo

Você pode salvar uma figura do Plotly como um arquivo HTML usando a função write_html() do módulo plotly.io. Veja um exemplo:

import plotly.io as pio
pio.write_html(fig, file='earthquakes.html', auto_open=True)

Saída 5

Mapas coropléticos

Um mapa coroplético é um tipo de mapa que usa cores ou tons diferentes para representar valores de dados em regiões diferentes, como países, estados ou províncias. Em um mapa coroplético, cada região é colorida de acordo com o valor de uma variável de dados específica, como população, renda ou temperatura.

Os mapas coropléticos podem ser usados em uma variedade de aplicações, como mapeamento de eleições, análise demográfica e visualização de dados geográficos. Eles podem ajudá-lo a ver padrões e tendências em seus dados que podem não estar aparentes em uma tabela ou em um gráfico e fornecem uma maneira poderosa de comunicar informações ao seu público.

Embora as funções scatter_geo e Choropleth do Plotly sejam usadas para criar visualizações geográficas, elas são diferentes em termos dos tipos de dados para os quais são mais adequadas e da forma como representam esses dados em um mapa. A função scatter_geo é mais bem utilizada para plotar pontos de dados individuais em um mapa, em que cada ponto representa uma localização geográfica específica, como uma cidade, um ponto de referência ou um terremoto.

Por outro lado, a função Choropleth é usada para visualizar dados que são agregados ou calculados como média entre regiões, como países, estados ou províncias. Cada região é sombreada ou colorida de acordo com o valor de uma variável de dados específica, como densidade populacional, renda média ou taxa de desemprego.

Exemplo de criação de um mapa coroplético no Plotly

import plotly.express as px
import pandas as pd


# Import data from GitHub
data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_with_codes.csv')


# Create basic choropleth map
fig = px.choropleth(data, locations='iso_alpha', color='gdpPercap', hover_name='country',
                    projection='natural earth', title='GDP per Capita by Country')
fig.show()

Saída:

Saída 6

Observe que temos um período de tempo em nosso dataframe year. Ele vai de 1952 a 2007. Podemos usar essa dimensão para animar a visualização. Veja o exemplo abaixo.

Conjunto de dados de amostra:

Conjunto de dados de amostra

import plotly.express as px
import pandas as pd


# Import data from GitHub
data = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_with_codes.csv')


# Create basic choropleth map
fig = px.choropleth(data, locations='iso_alpha', color='gdpPercap', hover_name='country',
                    projection='natural earth', animation_frame='year',
                    title='GDP per Capita by Country')
fig.show()

Saída

Saída 7

Conclusão

Os mapas são essenciais para a visualização de dados na era do big data. O Plotly é uma biblioteca avançada de visualização de dados para Python que permite criar uma variedade de mapas interativos. Com o Scattergeo, você pode plotar pontos de dados que correspondem a localizações geográficas específicas, enquanto o Choropleth é ideal para visualizar dados agregados em diferentes dimensões, como região, cidade, país etc.

Se você estiver interessado em explorar opções de personalização mais avançadas no Plotly ou quiser saber mais sobre suas possibilidades, confira a Folha de dicas do Python Plotly Express, que fornece uma referência rápida às funções e opções mais usadas do Plotly.

Temas
Relacionado

blog

Como aprender Python do zero em 2024: um guia especializado

Descubra como aprender Python, suas aplicações e a demanda por competências em Python. Comece sua jornada em Python hoje mesmo ​com nosso guia detalhado.
Matt Crabtree's photo

Matt Crabtree

19 min

blog

Mais de 60 projetos Python para todos os níveis de conhecimento

60 ideias de projetos de ciência de dados que os cientistas de dados podem usar para criar um portfólio sólido, independentemente de sua especialização.
Bekhruz Tuychiev's photo

Bekhruz Tuychiev

16 min

tutorial

Como comentar um bloco de código em Python

O uso de comentários é fundamental para trabalhar efetivamente com Python. Neste breve tutorial, aprenda a comentar um bloco de código em Python.
Adel Nehme's photo

Adel Nehme

3 min

tutorial

Como aparar uma cadeia de caracteres em Python: Três métodos diferentes

Aprenda os fundamentos do corte de caracteres à esquerda e à direita de uma string em Python.
Adel Nehme's photo

Adel Nehme

5 min

tutorial

Declaração de caso de troca do Python: Um guia para iniciantes

Explore o match-case do Python: um guia sobre sua sintaxe, aplicativos em ciência de dados, ML e uma análise comparativa com o switch-case tradicional.
Matt Crabtree's photo

Matt Crabtree

5 min

tutorial

Tutorial de Python

Em Python, tudo é objeto. Números, cadeias de caracteres (strings), DataFrames, e até mesmo funções são objetos. Especificamente, qualquer coisa que você usa no Python tem uma classe, um modelo associado por trás.
DataCamp Team's photo

DataCamp Team

3 min

See MoreSee More