Próbuję animować wektor, taki jak wiatr w języku Python. Próbowałem użyć funkcji kołczana w pylab iw połączeniu z matplotlib.animation z matplotlib. Jednak wynik mówi: 'QuiverKey' object is not subscriptable
. Myślę, że to dlatego, że nie rozumiem w pełni tych dwóch funkcji lub tylko te dwie funkcje nie pasują do siebie. Poniżej znajduje się mój kod, w rzeczywistości jest to połączenie funkcji kołczanu i animacji z matplotlib.Wykreślanie animowanych kołczanów w języku Python
def update_line(num, data, line):
line.set_data(data[...,:num])
return line,
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 = plt.figure()
Q = quiver(X[::3, ::3], Y[::3, ::3], U[::3, ::3], V[::3, ::3],
pivot='mid', color='r', units='inches')
data = quiverkey(Q, 0.5, 0.03, 1, r'$1 \frac{m}{s}$', fontproperties={'weight': 'bold'})
plt.axis([-1, 7, -1, 7])
title('scales with plot width, not view')
l, = plt.plot([], [], 'r-')
plt.xlabel('x')
plt.ylabel('y')
plt.title('test')
line_ani = animation.FuncAnimation(fig1, update_line, 25, fargs=(data, l),
interval=50, blit=True)
plt.show()
Dobrze, '' data' to obiekt QuiverKey' - stanowi klucz do działki kołczan, a nie tablicy wartości, które można indeksować. Naprawdę nie rozumiem, do czego dążysz - mówisz, że chcesz rysować animowane kołczany, ale funkcja animacji wygląda tak, jakby miała tylko dodawać punkty do linii. Czy możesz opisać, co próbujesz osiągnąć? –
Witaj, ali_m, naprawdę doceniam twój komentarz i pomoc. Moim celem jest stworzenie animacji, której drgania poruszają się w kierunkach strzał. Być może moje zrozumienie tej struktury funkcji jest zbyt niskie. Czy pomogłbyś mi zrozumieć, w jaki sposób poruszam każdy kołczan w kierunku każdej strzałki (wektor)? – Isaac
Nadal nie rozumiem, co masz na myśli. Czy chcesz zmienić długości i kąty strzałek, czy chcesz przesunąć ich punkty obrotu? O ile mi wiadomo, nie ma możliwości zmiany współrzędnych x, y wykresu kołczanu po jego utworzeniu, ale można użyć 'Q.set_UVC()', aby zaktualizować wektory strzałek. –