9
我想要在Python中爲諸如風的矢量創建動畫。我試圖在pylab中使用顫抖函數,並與來自matplotlib的matplotlib.animation一起使用。但結果說'QuiverKey' object is not subscriptable
。我認爲這是因爲我不完全瞭解這兩個功能,或者只是這兩個功能不匹配。下面是我的代碼,它實際上是來自matplotlib的顫音和動畫函數之間的組合。在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()
嘛,'data'是'QuiverKey'對象 - 這是一個關鍵的情節顫抖,而不是一個數組您可以編入索引的值。我真的不明白你的目標是什麼 - 你說你想繪製動畫顫抖,但是你的動畫函數看起來只是爲了添加點而已。你能描述你想要達到的目標嗎? –
嗨ali_m,我真的很感謝你的評論和幫助。我的目標是製作一個動畫,讓顫抖的人朝着箭頭的方向移動。也許我對這個功能結構的理解太低了。你能幫我理解我如何讓每個箭頭移動到每個箭頭(矢量)方向嗎? – Isaac
我還是不太明白你的意思。你想改變箭的長度和角度,還是你想要移動它們的支點?據我所知,一旦創建了顫動圖,就沒有辦法改變顫抖圖的x,y座標,但是你可以使用'Q.set_UVC()'來更新箭頭矢量。 –