ast*_*nlu 5 python plot matplotlib
我要制作一系列绘图(旨在创建动画),因此我想重用轴并在所有绘图中保留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
Run Code Online (Sandbox Code Playgroud)
因此我最终还是执行ax.lines = []或ax.lines.pop(),但这迫使我在每个图上设置颜色以避免颜色循环。如果设置hold为False,则每次调用时都会重置自动缩放设置ax.plot()。还有什么其他方法可以在删除所有图时保留轴属性?
小智 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()
Run Code Online (Sandbox Code Playgroud)
Matplotlib 的 CookBook有一些关于动画的很好的例子,你可能想看看。