我有一个关于matplotlib图形对象的简单问题。
我在名为gauss的函数库中有以下代码,它返回一个数字:
def plot_3d(X,Y,Z):
fig1 = plt.figure(1)
ax1 = Axes3D(fig1)
surf = ax1.plot_surface(X,Y,Z,cmap=cm.coolwarm)
fig1.colorbar(surf,shrink=0.5,aspect=5)
ax1.set_xlabel('x')
ax1.set_ylabel('y')
ax1.set_zlabel('f(x,y)')
return fig1
在解释器中,我使用给定的X,Y,Z
运行代码fig = gauss.plot_3d(X,Y,Z)
代码调用该对象。但是一旦我关闭了对象,我怎么能再次调用它呢?
的内容
plt.show(fig)
答案 0 :(得分:2)
show
上的arg不符合您的想法。 show
吃*args, **kwargs
,但如果它应该阻止,它真的会被传递给bool。
关闭数字后,它会从pyplot
的有效数字注册表中删除。如果您仍然可以参考该图,那么可以尝试再次显示它,方法是进入图形的内部并戳到图形画布的经理窗口。
ex(对于qt后端):
fig, ax = plt.subplots()
然后关闭窗口,然后
fig.canvas.manager.window.show()
应该让它弹回来。