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.