如何从matplotlib保存pcolormesh图像

时间:2017-08-15 11:02:24

标签: python matplotlib

超级简单的问题,但我已经坚持了太长时间,并没有找到任何帮助。

使用以下代码生成一个我可以在spyder中看到的图像,但是当我调用保存功能时,它会保存一个空的(全白色)图像。

x,y = np.meshgrid(xs, ys)
z = np.array(zs)

fig = plt.figure(figsize=(2,8))
plt.pcolormesh(x, y, z.T, cmap='RdYlGn')
plt.colorbar()
plt.show()
plt.savefig('test.png')

这是我在IDE中看到的:

enter image description here

这是保存的内容:

enter image description here

1 个答案:

答案 0 :(得分:2)

您需要在显示之前保存图像。而不是

plt.savefig('test.png')
plt.show()

你需要

plt.show()

原因是在plt.show() fig.savefig('test.png') 显示图之后,图形将从当前的pyplot状态中删除,这样保存的是没有任何内容的新图形。

然而,这个数字本身仍然存在。因此,如果您有一个数字句柄,您可能实际上使用它来保存图形后显示。因此以下工作:

{{1}}