6

一連のプロット (アニメーションを作成するためのもの) を作成したいので、軸を再利用し、すべてのプロットで x と y の制限を維持したいので、 を設定しax.autoscale(False)ます。ただし、次の画像を描画するために plt.cla() を使用して軸をクリアすると、オートスケール設定がオーバーライドされるため、反復ごとにax.autoscale(False)x と y の制限を設定する必要があります。

In [49]: fig = plt.figure(1)

In [50]: ax = fig.add_subplot(1, 1, 1)

In [59]: ax.get_autoscale_on()
Out[59]: True

In [60]: ax.autoscale(False)

In [61]: ax.get_autoscale_on()
Out[61]: False

In [62]: plt.cla()

In [63]: ax.get_autoscale_on()
Out[63]: True

そのため、ax.lines = []またはax.lines.pop()を実行することになりますが、これにより、色の循環を避けるために各プロットに色を設定する必要があります。に設定holdするとFalse、 を呼び出すたびに自動スケール設定がリセットされますax.plot()。すべてのプロットを削除しながら、軸のプロパティを保持する他の方法はありますか?

4

1 に答える 1

4

を呼び出さないでください。現在の軸plt.cla()クリアされます。アニメーションを作成したい場合は、現在の図を再描画matplotlib.pyplot.draw()する代わりに使用してください。それはあなたが望むものだと思います.

from pylab import *
import matplotlib.pyplot as plt
ion()
ax=plt.subplot(111)

line1, = ax.plot(x,y,label='x')

for i in xrange(20):
 #update your data to new x,y
 line1.set_xdata(x)
 line1.set_ydata(y)
 draw()

Matplotlibのクックブックには、アニメーションに関する良い例がいくつかあります。チェックしてみてください。

于 2012-05-27T12:28:31.290 に答える