调用matplotlib绘图对象以在屏幕上显示

时间:2014-06-26 18:31:17

标签: python matplotlib

我有一个关于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)

1 个答案:

答案 0 :(得分:2)

show上的arg不符合您的想法。 show*args, **kwargs,但如果它应该阻止,它真的会被传递给bool。

关闭数字后,它会从pyplot的有效数字注册表中删除。如果您仍然可以参考该图,那么可以尝试再次显示它,方法是进入图形的内部并戳到图形画布的经理窗口。

ex(对于qt后端):

fig, ax = plt.subplots()

然后关闭窗口,然后

fig.canvas.manager.window.show()

应该让它弹回来。