我想制作一系列图(用于创建动画),因此我想重复使用轴并保留所有图中的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()
时都会重置自动缩放设置。在删除所有绘图时是否还有其他方法可以保留轴属性?
答案 0 :(得分: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()
CookBook of Matplotlib有一些很好的动画示例,您可能需要查看它。