Introdução
Neste laboratório, você aprenderá como desenhar uma elipse com uma seta de orientação usando Matplotlib. Elipses são um tipo de forma comumente usado em visualização de dados para representar dados. Ao adicionar uma seta de orientação a uma elipse, você pode fornecer informações adicionais sobre a direção dos dados.
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 Matplotlib e Criar uma Figura e Eixo
Primeiramente, você precisa importar Matplotlib e criar uma figura e um eixo. A figura e o eixo são os contêineres para o seu gráfico.
import matplotlib.pyplot as plt
## Create a figure and axis
fig, ax = plt.subplots(subplot_kw={"aspect": "equal"})
Criar uma Elipse
Em seguida, você precisa criar uma elipse usando a classe Ellipse. Você pode especificar o centro da elipse, a largura e a altura da elipse e o ângulo de rotação.
from matplotlib.patches import Ellipse
ellipse = Ellipse(
xy=(2, 4),
width=30,
height=20,
angle=35,
facecolor="none",
edgecolor="b"
)
ax.add_patch(ellipse)
Adicionar uma Seta de Orientação
Você pode adicionar uma seta de orientação à elipse plotando um marcador no ponto final do eixo menor. Você pode usar o método get_co_vertices() para obter as coordenadas dos vértices da elipse. Em seguida, você pode usar a classe Affine2D() para rotacionar o marcador para corresponder ao ângulo da elipse.
from matplotlib.markers import MarkerStyle
from matplotlib.transforms import Affine2D
## Plot an arrow marker at the end point of minor axis
vertices = ellipse.get_co_vertices()
t = Affine2D().rotate_deg(ellipse.angle)
ax.plot(
vertices[0][0],
vertices[0][1],
color="b",
marker=MarkerStyle(">", "full", t),
markersize=10
)
Inverter a Seta de Orientação
Se você deseja inverter a seta de orientação, pode mudar o tipo de marcador de > para <.
## To reverse the orientation arrow, switch the marker type from > to <.
ax.plot(
vertices[0][0],
vertices[0][1],
color="b",
marker=MarkerStyle("<", "full", t),
markersize=10
)
Exibir o Gráfico
Finalmente, você pode exibir o gráfico usando o método show().
plt.show()
Resumo
Parabéns! Você aprendeu como desenhar uma elipse com uma seta de orientação usando Matplotlib. Essa técnica pode ser útil para visualizar dados que possuem uma direção.