Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Plotagem Avançada com Matplotlib e Seaborn | Técnicas de Análise Espacial
Análise Geoespacial com Python

Plotagem Avançada com Matplotlib e Seaborn

Deslize para mostrar o menu

Ao trabalhar com dados espaciais, a visualização eficaz é fundamental para revelar padrões e comunicar informações. As bibliotecas matplotlib e seaborn do Python oferecem ferramentas poderosas para aprimorar seus gráficos espaciais, permitindo personalizar cores, adicionar legendas informativas, definir títulos descritivos e sobrepor múltiplas camadas de dados. Ao dominar essas técnicas, é possível criar mapas e visualizações claros e envolventes que destacam relações espaciais importantes.

A personalização de gráficos espaciais geralmente começa pelo controle da aparência dos dados. É possível especificar cores para representar diferentes categorias ou valores, ajustar a transparência para revelar elementos sobrepostos e utilizar legendas para explicar as codificações visuais. A adição de títulos e rótulos nos eixos auxilia na interpretação rápida dos gráficos. Sobrepor múltiplas camadas—como estradas sobre limites administrativos—pode fornecer um contexto mais aprofundado para a análise espacial.

12345678910111213141516171819202122232425262728293031323334
import geopandas as gpd import matplotlib.pyplot as plt url = "https://naciscdn.org/naturalearth/110m/cultural/ne_110m_admin_0_countries.zip" world = gpd.read_file(url) # Create a plot with customizations fig, ax = plt.subplots(figsize=(12, 8)) # Plot countries, coloring by continent world.plot(column='CONTINENT', cmap='Set2', edgecolor='black', linewidth=0.5, legend=True, ax=ax, alpha=0.8) # Overlay country boundaries with a thicker line for emphasis world.boundary.plot(ax=ax, color='gray', linewidth=1.5) # Add a title and axis labels ax.set_title('World Countries by Continent', fontsize=18) ax.set_xlabel('Longitude') ax.set_ylabel('Latitude') # Customize legend position so it doesn't overlap the map leg = ax.get_legend() if leg: leg.set_bbox_to_anchor((1.15, 0.5)) plt.tight_layout() plt.show()
Note
Nota

O nome da coluna no conjunto de dados oficial é CONTINENT

Além das visualizações baseadas em mapas, também é possível explorar a distribuição de atributos espaciais — como área, população ou densidade — utilizando gráficos estatísticos. O Seaborn é especialmente útil para esse propósito, permitindo criar histogramas, gráficos de dispersão e outros, todos com estilos atraentes por padrão e fácil personalização. Ao combinar o seaborn com dados espaciais, é possível identificar rapidamente tendências e valores atípicos nos conjuntos de dados, apoiando uma análise espacial mais aprofundada.

1234567891011121314151617181920212223242526272829303132
import geopandas as gpd import seaborn as sns import matplotlib.pyplot as plt # Load sample data directly from the official URL url = "https://naciscdn.org/naturalearth/110m/cultural/ne_110m_admin_0_countries.zip" world = gpd.read_file(url) # The official dataset doesn't have a pre-made 'area' column, so we calculate it. # Note: This calculates area in decimal degrees based on the WGS84 projection. world['area'] = world.geometry.area # Plot a histogram of country areas plt.figure(figsize=(10, 6)) # 'area' is our new custom column, kde=True adds the density curve sns.histplot(world['area'], bins=30, color='skyblue', kde=True) plt.title('Distribution of Country Areas') plt.xlabel('Area (sq. degrees)') plt.ylabel('Number of Countries') plt.tight_layout() plt.show() # Plot a scatter plot of population vs. area plt.figure(figsize=(10, 6)) # Adjusted column names to match the official dataset: 'POP_EST' and 'CONTINENT' sns.scatterplot(x='area', y='POP_EST', data=world, hue='CONTINENT', palette='Set2') plt.title('Country Population vs. Area by Continent') plt.xlabel('Area (sq. degrees)') plt.ylabel('Estimated Population') plt.legend(title='Continent', bbox_to_anchor=(1.05, 1), loc='upper left') plt.tight_layout() plt.show()
question mark

Qual das afirmações a seguir melhor descreve o efeito do uso de diferentes mapas de cores e legendas em visualizações espaciais?

Selecione a resposta correta

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 2. Capítulo 4
some-alt