Criando um Polígono em Matplotlib

Beginner

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

Introdução

Matplotlib é uma biblioteca Python utilizada para visualização de dados. Neste laboratório, usaremos Matplotlib para criar um polígono programaticamente ou interativamente. O polígono pode ser usado para destacar uma região de interesse ou para mascarar uma determinada área de um gráfico.

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 as Bibliotecas Necessárias

Antes de começarmos a trabalhar com Matplotlib, precisamos importar as bibliotecas necessárias. Usaremos matplotlib.pyplot e matplotlib.widgets neste laboratório.

import matplotlib.pyplot as plt
from matplotlib.widgets import PolygonSelector

Criar um Polígono Programaticamente

Para criar um polígono programaticamente, precisamos criar um objeto Figure e um objeto Axes. Em seguida, podemos criar um objeto PolygonSelector e adicionar vértices a ele. Finalmente, podemos plotar o polígono no Axes.

fig, ax = plt.subplots()
selector = PolygonSelector(ax, lambda *args: None)

## Add three vertices
selector.verts = [(0.1, 0.4), (0.5, 0.9), (0.3, 0.2)]

## Plot the polygon
ax.add_patch(plt.Polygon(selector.verts, alpha=0.3))
plt.show()

Criar um Polígono Interativamente

Para criar um polígono interativamente, precisamos criar um objeto Figure e um objeto Axes. Em seguida, podemos criar um objeto PolygonSelector e adicionar vértices a ele clicando no gráfico. Também podemos usar as teclas shift e ctrl para mover os vértices.

fig, ax = plt.subplots()
selector = PolygonSelector(ax, lambda *args: None)

print("Clique na figura para criar um polígono.")
print("Pressione a tecla 'esc' para iniciar um novo polígono.")
print("Tente segurar a tecla 'shift' para mover todos os vértices.")
print("Tente segurar a tecla 'ctrl' para mover um único vértice.")

plt.show()

Juntando Tudo

Vamos criar um exemplo completo que inclui tanto a criação de um polígono programaticamente quanto interativamente.

import matplotlib.pyplot as plt
from matplotlib.widgets import PolygonSelector

## Create a figure and axes
fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(10, 5))

## Create a PolygonSelector object and add vertices
selector1 = PolygonSelector(ax1, lambda *args: None)
selector1.verts = [(0.1, 0.4), (0.5, 0.9), (0.3, 0.2)]

## Plot the polygon
ax1.add_patch(plt.Polygon(selector1.verts, alpha=0.3))

## Create another PolygonSelector object for interactive creation
selector2 = PolygonSelector(ax2, lambda *args: None)

print("Clique na figura para criar um polígono.")
print("Pressione a tecla 'esc' para iniciar um novo polígono.")
print("Tente segurar a tecla 'shift' para mover todos os vértices.")
print("Tente segurar a tecla 'ctrl' para mover um único vértice.")

plt.show()

Resumo

Neste laboratório, aprendemos como criar um polígono programaticamente e interativamente usando Matplotlib. Também aprendemos como adicionar vértices a um objeto PolygonSelector e plotar o polígono resultante em um Axes. Este conhecimento pode ser útil para destacar regiões de interesse ou mascarar certas áreas em um gráfico.