2
私は、ムービーの矢印がページを横切って移動するmatplotlibアニメーションを作成しています。これは、u、vコンポーネントを更新するためのset_UVC
メソッドがありますが、xを変更する同等の方法はないため、通常の方法(1つのQuiverオブジェクトを作成し、それをアニメーションの各フレームで更新する)では達成できません。 、矢印のy位置。したがって、私は各フレームの新しいQuiverオブジェクトを作成しています。matplotlibアニメーションを保存するときに以前のフレームがクリアされない
これは、plt.show()
を実行してアニメーションが画面に描画されたときに正常に動作します。矢印はページを横切って左から右に移動し、1つの矢印が表示されると前の矢印が消えます。これが私が望むものです。しかし、私がgifやmp4として保存すると、以前の矢印はクリアされないので、矢印の全体が表示されます。これをどうすれば解決できますか?次のように
私のコードは次のとおり
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation
n = 21
x = np.linspace(-1.0, 1.0, num=n)
def animate(i):
q = plt.quiver(x[i:i+1], [0], [1], [0])
return q,
plt.gca().set_xlim([-1, 1])
anim = matplotlib.animation.FuncAnimation(plt.gcf(), animate, frames=n,
repeat=True, blit=True)
plt.show()
#anim.save('anim.gif', dpi=80, writer='imagemagick')
#anim.save('anim.mp4', dpi=80, writer='ffmpeg')
設定は透過的なフィギュアパッチ用ですか? 'matplotlib.rcParams ['savefig.frameon']'を使って確認することができます。これは 'True'でなければなりません。新しいパッチには堅実な背景(http://matplotlib.org/api/pyplot_api.html)を設定するか、 'anim.save(' anim.mp4 '、[..etc ..]、extra_args = {' frameon ':True})を使用した引数 '(http://matplotlib.org/api/animation_api.html) – slushy
これをチェックする矢印の位置を変更する:http://stackoverflow.com/questions/17758942/is-it-possible-to-update-matplotlib-quiver-position-coordinates-in-an-animation –
q.set_offsetsを推奨として使用する@Jeanによって完全に動作します。ありがとうございました! –