まず、Pythonを学び始めました。私はプロットアニメーション中に矢印プロパティを変更するために、矢印プロパティを更新しようとしている最後の時間に苦労しています。Pythonの矢印アニメーション
答えを徹底的に探した後、circle.center = new_coordinates
などの属性 'center'を変更してサークルパッチセンターを変更できることを確認しました。しかし、私は矢印のパッチには、このメカニズムを推定する方法を見つけていない...
コード今のところです:
import numpy as np, math, matplotlib.patches as patches
from matplotlib import pyplot as plt
from matplotlib import animation
# Create figure
fig = plt.figure()
ax = fig.gca()
# Axes labels and title are established
ax = fig.gca()
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_ylim(-2,2)
ax.set_xlim(-2,2)
plt.gca().set_aspect('equal', adjustable='box')
x = np.linspace(-1,1,20)
y = np.linspace(-1,1,20)
dx = np.zeros(len(x))
dy = np.zeros(len(y))
for i in range(len(x)):
dx[i] = math.sin(x[i])
dy[i] = math.cos(y[i])
patch = patches.Arrow(x[0], y[0], dx[0], dy[0])
def init():
ax.add_patch(patch)
return patch,
def animate(t):
patch.update(x[t], y[t], dx[t], dy[t]) # ERROR
return patch,
anim = animation.FuncAnimation(fig, animate,
init_func=init,
interval=20,
blit=False)
plt.show()
いくつかのオプションを試した後、私は、機能更新が何とかできると思いました解決に近づけてください。しかし、私はエラーを取得する:
TypeError: update() takes 2 positional arguments but 5 were given
私は、以下のようにアニメーション機能を定義することにより、ステップごとに1つの以上のパッチを追加した場合、私は、添付画像のような結果を得ることができます。
def animate(t):
patch = plt.Arrow(x[t], y[t], dx[t], dy[t])
ax.add_patch(patch)
return patch,
私は模倣することでこれを見つけた...
ヒント:あなたの初心者のような場合をあなたはそうだと言います、私は何かをこのようなものに動かす前に、もっと簡単に何かを試すことを提案します。 –
あなたはおそらく正しいでしょう...私は、線と散点の2Dと3Dのアニメーションを正常に実装しました。アニメーション内の任意のオブジェクトを更新することを学ぶことは、可能性の世界を広げます:Pありがとう! –
うれしい私はおいおいを助けることができました! –