问题解决:使用matplotlib.pyplot将绘制的图像保存为文件,打开文件后,画布为空?

  • Post author:
  • Post category:其他


使用以下代码,想要将绘制的图片保存为图片文件,代码运行后,打开文件,发现画布为空白:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.5,2*np.pi,20)
y = np.random.randn(20)

plt.stem(x,y,linefmt="-.",markerfmt="o",basefmt="-",use_line_collection=True)
plt.show()
"""
想要将绘制的图像导出为文件,于是使用如下代码,运行后,打开保存的文件,发现画布为空?
"""
plt.savefig(r"棉棒图.png")

将上述使用plt顶层函数的方法,改为面向对象的编程方式,代码如下,则文件保存输出正常:

fig, ax = plt.subplots()
ax.stem(x,y,linefmt="-.",markerfmt="o",basefmt="-",use_line_collection=True)
plt.savefig(r"棉棒.png")

思考认为,第一种方式因为没有创建对象,所以在plt函数调用完(把活儿干完:图片生成好),局部变量就从内存释放、不存在了,所以保存时、并无任何对象可以保存,因为为空。

所以,我认为,如果调试运行、探索性数据分析,用第一种方法;

如果已经要到项目后期、产生输出,最好使用后一种方法:面向对象的编程。



版权声明:本文为weixin_43914745原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。