Gráficos de Contorno Preenchidos com Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste tutorial, aprenderemos como criar gráficos de contorno preenchidos usando o método contourf na biblioteca Matplotlib. Abordaremos como criar contornos preenchidos com níveis automáticos e explícitos, e como definir o mapa de cores e as configurações de extensão.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importar Bibliotecas e Criar Dados

Primeiramente, precisamos importar as bibliotecas necessárias e criar alguns dados para plotar.

import matplotlib.pyplot as plt
import numpy as np

## Create data
origin = 'lower'
delta = 0.025
x = y = np.arange(-3.0, 3.01, delta)
X, Y = np.meshgrid(x, y)
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X - 1)**2 - (Y - 1)**2)
Z = (Z1 - Z2) * 2

Criar Contorno Preenchido com Níveis Automáticos

Em seguida, criaremos um gráfico de contorno preenchido com níveis automáticos. Usaremos o método contourf com o parâmetro cmap definido como plt.cm.bone para especificar o mapa de cores (colormap). Também adicionaremos linhas de contorno com o método contour e passaremos um subconjunto dos níveis de contorno usados para os contornos preenchidos.

## Create filled contour with automatic levels
fig, ax = plt.subplots()
CS = ax.contourf(X, Y, Z, 10, cmap=plt.cm.bone, origin=origin)
CS2 = ax.contour(CS, levels=CS.levels[::2], colors='r', origin=origin)

## Add title, axis labels, and colorbar
ax.set_title('Filled Contour with Automatic Levels')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
cbar = fig.colorbar(CS)
cbar.ax.set_ylabel('Z Label')
cbar.add_lines(CS2)

## Show plot
plt.show()

Criar Contorno Preenchido com Níveis Explícitos

Agora, criaremos um gráfico de contorno preenchido com níveis explícitos. Usaremos o método contourf com o parâmetro levels definido como uma lista de valores para especificar os níveis de contorno. Também definiremos o mapa de cores (colormap) para uma lista de cores e definiremos o parâmetro extend como 'both' para mostrar valores fora da faixa de níveis.

## Create filled contour with explicit levels
fig, ax = plt.subplots()
levels = [-1.5, -1, -0.5, 0, 0.5, 1]
CS = ax.contourf(X, Y, Z, levels, colors=('r', 'g', 'b'),
                 origin=origin, extend='both')
CS2 = ax.contour(X, Y, Z, levels, colors=('k',),
                 linewidths=(3,), origin=origin)

## Add title, axis labels, and colorbar
ax.set_title('Filled Contour with Explicit Levels')
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
cbar = fig.colorbar(CS)
cbar.ax.set_ylabel('Z Label')

## Show plot
plt.show()

Definir Mapa de Cores (Colormap) e Configurações de Extensão

Finalmente, definiremos o mapa de cores (colormap) e as configurações de extensão. Usaremos o método with_extremes para definir as cores para valores abaixo e acima da faixa de níveis. Também criaremos quatro subplots para mostrar as quatro configurações de extend possíveis: 'neither', 'both', 'min' e 'max'.

## Set colormap and extend settings
extends = ["neither", "both", "min", "max"]
cmap = plt.colormaps["winter"].with_extremes(under="magenta", over="yellow")

## Create subplots with different extend settings
fig, axs = plt.subplots(2, 2, layout="constrained")
for ax, extend in zip(axs.flat, extends):
    cs = ax.contourf(X, Y, Z, levels, cmap=cmap, extend=extend, origin=origin)
    fig.colorbar(cs, ax=ax, shrink=0.9)
    ax.set_title("extend = %s" % extend)
    ax.locator_params(nbins=4)

## Show plot
plt.show()

Resumo

Neste tutorial, aprendemos como criar gráficos de contorno preenchidos usando o método contourf na biblioteca Matplotlib. Cobrimos como criar contornos preenchidos com níveis automáticos e explícitos, e como definir o mapa de cores (colormap) e as configurações de extensão. Com essas habilidades, você pode criar gráficos de contorno bonitos e informativos para seus dados.