我正在使用matplotlib绘图,并使用ioff()关闭交互模式,以禁止在创建figrue时自动打开绘图窗口。我想要完全控制图形,并且只在明确使用show()命令时才能看到它。在
现在很明显,清除数字和坐标轴的内置命令已经不能正常工作了。在
示例:import numpy as np
import matplotlib.pyplot as mpp
class PlotTest:
def __init__(self,nx=1,ny=1):
# Switch off interactive mode:
mpp.ioff()
# Create Figure and Axes:
self.createFigure(nx, ny)
def createFigure(self,nx=1,ny=1):
self.fig, self.axes = mpp.subplots(nx,ny)
if nx*ny == 1:
self.axes = np.array([self.axes])
def linePlot(self):
X = np.linspace(0,20,21)
Y = np.random.rand(21)
self.axes[0].plot(X,Y)
P = PlotTest()
P.linePlot()
P.fig.show()
现在我想我可以随时使用P.fig.clear()来清除{},但显然不是这样。在
直接将P.fig.clear()写入脚本并一起执行它,它起作用了,我看到的只是一个空数字。然而,这是相当没有意义的,因为我从来没有看到过真正的情节。在
在控制台中手动执行P.fig.clear()不会执行任何操作,无论绘图窗口是否打开,所有其他可能的命令也会失败:
^{pr2}$
将命令包装到类方法中也不起作用:def clearFig(self):
self.fig.clear()
编辑=================
在clear()fig.axes为空后,show()仍然显示旧的绘图,轴仍在绘制中。在
/编辑=================
是因为我关掉了互动模式吗?在