Introdução
Matplotlib é uma biblioteca de visualização de dados em Python que permite aos usuários criar uma ampla gama de gráficos 2D e 3D. Uma das muitas funcionalidades úteis do Matplotlib é a capacidade de criar gráficos de vetores (quiver plots), que exibem campos vetoriais.
Este laboratório irá percorrer algumas opções avançadas para as funções quiver() e quiverkey() em Matplotlib. Estas funções permitem a personalização das setas em um gráfico de vetores, incluindo a escala das setas, o ponto de pivô (pivot point) e a frequência das setas.
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ê.
Escala das Setas com a Largura do Gráfico, Não com a Visualização
A função quiver() pode ser usada para criar um gráfico de vetores (quiver plot). Por padrão, as setas no gráfico serão escaladas com os dados, em vez do próprio gráfico. Isso pode dificultar a visualização de setas que estão próximas da borda do gráfico.
import matplotlib.pyplot as plt
import numpy as np
X, Y = np.meshgrid(np.arange(0, 2 * np.pi, .2), np.arange(0, 2 * np.pi, .2))
U = np.cos(X)
V = np.sin(Y)
fig1, ax1 = plt.subplots()
ax1.set_title('Arrows scale with plot width, not view')
Q = ax1.quiver(X, Y, U, V, units='width')
qk = ax1.quiverkey(Q, 0.9, 0.9, 2, r'$2 \frac{m}{s}$', labelpos='E',
coordinates='figure')
plt.show()
Ponto de Pivô e Frequência das Setas
A função quiver() também pode ser usada para personalizar o ponto de pivô (pivot point) das setas e a frequência com que elas são exibidas. O parâmetro pivot pode ser definido como 'mid' ou 'tip', e os arrays passados para quiver() podem ser fatiados (sliced) para exibir apenas a cada enésima seta.
fig2, ax2 = plt.subplots()
ax2.set_title("pivot='mid'; every third arrow; units='inches'")
Q = ax2.quiver(X[::3, ::3], Y[::3, ::3], U[::3, ::3], V[::3, ::3],
pivot='mid', units='inches')
qk = ax2.quiverkey(Q, 0.9, 0.9, 1, r'$1 \frac{m}{s}$', labelpos='E',
coordinates='figure')
ax2.scatter(X[::3, ::3], Y[::3, ::3], color='r', s=5)
plt.show()
Escalar Setas com a Visualização X
A função quiver() também permite escalar as setas com a visualização x. Isso pode ser útil para exibir setas em diferentes escalas, dependendo dos dados.
fig3, ax3 = plt.subplots()
ax3.set_title("pivot='tip'; scales with x view")
M = np.hypot(U, V)
Q = ax3.quiver(X, Y, U, V, M, units='x', pivot='tip', width=0.022,
scale=1 / 0.15)
qk = ax3.quiverkey(Q, 0.9, 0.9, 1, r'$1 \frac{m}{s}$', labelpos='E',
coordinates='figure')
ax3.scatter(X, Y, color='0.5', s=1)
plt.show()
Resumo
Este laboratório abordou algumas opções avançadas para as funções quiver() e quiverkey() em Matplotlib. Essas opções permitem a personalização das setas em um gráfico de quiver, incluindo a escala das setas, o ponto de pivô (pivot point) e a frequência das setas. Ao usar essas opções, os usuários podem criar gráficos de quiver mais informativos e visualmente atraentes.