在pylab中重新初始化图形
我刚开始使用PyLab,想要画一些点。但是我不想让之前的点显示出来,也就是说每当有新点出现时,之前画的点就消失,只显示新点。我搜索了很多资料,但找不到怎么在中间重新初始化图表的方法。我遇到的问题是,我可以通过使用plt.figure(f1.number)来设置当前的图形,但在那个图形上画点后,它就会永久改变。
2 个回答
1
使用pylab的时候,pylab.clf()
可以清空当前的图形,这样你就可以重新绘制图表了。
另外,你也可以通过set_xdata
和set_ydata
来更新你的数据,这两个方法是在你创建新图表时返回的坐标轴对象上使用的(无论是用pylab.plot
还是pylab.subplot
)。
后者可能更受欢迎,但需要多花一点功夫。我能快速找到的一个例子是另一个SO问题。
6
在你开始绘图之前,使用 plt.hold(False)
就能达到你想要的效果。
hold
这个功能决定了当你绘制新的图形时,旧的图形是否会被保留。默认情况下,hold
是开启的。
举个例子
# two lines
plt.figure()
plt.hold(True)
plt.plot(range(5))
plt.plot(range(5)[::-1])
#one line
plt.figure()
plt.hold(False)
plt.plot(range(5))
plt.plot(range(5)[::-1])
通过 plt.hold
来改变这个设置,会影响到所有新的坐标轴。如果你想单独改变某个 axes
的保留状态,可以这样做:
ax = gca()
ax.hold(True)