ここにある基本的なアニメーションチュートリアルに従い、フレームごとに関数を評価するのではなく、すでに計算されたデータセットを表示するように適応させようとしていますが、行き詰まっています。私のデータセットは、リストに含まれている時間をかけてXY座標を、必要satxpos
とsatypos
私はそれが言う1新しいポイントごとに0.1秒を表示し、最後までデータセットの先頭から始まるラインをトレースするように、アニメーションを作成しようとしています。私が間違っているところについて何か助けはありますか?
from matplotlib import pyplot as plt
from matplotlib import animation
import numpy as np
Code here creates satxpos and satypos as lists
fig = plt.figure()
ax = plt.axes(xlim=(-1e7,1e7), ylim = (-1e7,1e7))
line, = ax.plot([], [], lw=2)
def init():
line.set_data([], [])
return line,
def animate(i):
line.set_data(satxpos[i], satypos[i])
return line,
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames = len(satxpos), interval = 1, blit=True)
編集: コードはエラーなしで実行されますが、ポイント/ラインが表示されず、アニメーションも表示されない空白のプロット ウィンドウが生成されます。データセットは正しく生成され、静的プロットで問題なく表示されます。
「データセットの最初から最後までの行をトレースする」には、タイムステップごとにもう1つの要素を含むように配列にインデックスを付けます。
line.set_data(satxpos[:i], satypos[:i])
(注意してください:
!)
上記の操作で折れ線グラフを取得して拡張する必要があるように、コード内の他のすべては正常に見えます。次にinterval
、1より大きい値に設定することをお勧めします。これは、1ミリ秒のタイムステップを意味するためです(少し速すぎる可能性があります)。使用interval = 40
することは良いスタートかもしれないと思います。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加