Gráficos de Contorno Mascarados com Matplotlib

Beginner

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

Introdução

Na visualização de dados, os gráficos de contorno (contour plots) são comumente usados para exibir dados tridimensionais em um plano bidimensional. Matplotlib é uma biblioteca de plotagem amplamente utilizada em Python que fornece funcionalidades para criar diferentes tipos de gráficos, incluindo gráficos de contorno. Neste laboratório, aprenderemos como criar gráficos de contorno mascarados usando Matplotlib e como ilustrar a diferença entre máscaras de canto (corner masks) ativadas e desativadas.

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ê.

Importando as Bibliotecas Necessárias

Para criar gráficos de contorno mascarados usando Matplotlib, precisamos importar as seguintes bibliotecas:

  • numpy: uma biblioteca para a linguagem de programação Python que fornece suporte para arrays e matrizes grandes e multidimensionais.
  • matplotlib.pyplot: uma coleção de funções que fornecem uma interface simples para criar diferentes tipos de gráficos.
import matplotlib.pyplot as plt
import numpy as np

Criando Dados para Plotagem

Nesta etapa, criaremos dados para plotar em um gráfico de contorno. Usamos a função np.meshgrid() para criar uma grade de pontos e, em seguida, calculamos os valores z usando as funções seno e cosseno.

## Data to plot.
x, y = np.meshgrid(np.arange(7), np.arange(10))
z = np.sin(0.5 * x) * np.cos(0.52 * y)

Mascarando os Dados

Nesta etapa, mascararemos alguns dos valores z usando uma máscara booleana. Criamos um array mask usando a função np.zeros_like() e, em seguida, definimos alguns dos valores como True para mascará-los.

## Mask various z values.
mask = np.zeros_like(z, dtype=bool)
mask[2, 3:5] = True
mask[3:5, 4] = True
mask[7, 2] = True
mask[5, 0] = True
mask[0, 6] = True
z = np.ma.array(z, mask=mask)

Criando o Gráfico

Nesta etapa, criaremos o gráfico de contorno mascarado usando a função contourf(). Passamos os arrays x, y e z para esta função, juntamente com o argumento corner_mask definido como True ou False, dependendo do tipo de gráfico que queremos criar.

corner_masks = [False, True]
fig, axs = plt.subplots(ncols=2)
for ax, corner_mask in zip(axs, corner_masks):
    cs = ax.contourf(x, y, z, corner_mask=corner_mask)
    ax.contour(cs, colors='k')
    ax.set_title(f'{corner_mask=}')

    ## Plot grid.
    ax.grid(c='k', ls='-', alpha=0.3)

    ## Indicate masked points with red circles.
    ax.plot(np.ma.array(x, mask=~mask), y, 'ro')

plt.show()

Interpretação dos Resultados

Nesta etapa, interpretaremos os resultados do gráfico de contorno mascarado. Podemos observar que o parâmetro corner_mask controla se os pontos de canto do gráfico são mascarados ou não. Quando corner_mask é definido como True, os cantos do gráfico de contorno são mascarados, enquanto quando é definido como False, eles não são mascarados. Também podemos ver que os pontos mascarados são indicados por círculos vermelhos.

Resumo

Neste laboratório, aprendemos como criar gráficos de contorno mascarados usando Matplotlib. Primeiro, importamos as bibliotecas necessárias e, em seguida, criamos os dados para plotar. Depois, mascaramos alguns dos valores z usando uma máscara booleana e criamos o gráfico de contorno usando a função contourf(). Finalmente, interpretamos os resultados e observamos a diferença entre as máscaras de canto ativadas e desativadas.