matplotlib---保存图片出现的问题

1.保存图片为空白

当使用如下代码保存使用 plt.savefig 保存生成的图片时,结果打开生成的图片却是一片空白。

1
2
3
4
5
6
import matplotlib.pyplot as plt
 
""" 一些画图代码 """
 
plt.show()
plt.savefig("filename.png")

原因:在 plt.show() 后调用了 plt.savefig() ,在 plt.show() 后实际上已经创建了一个新的空白的图片(坐标轴),这时候你再 plt.savefig() 就会保存这个新生成的空白图片。

方法一:在 plt.show() 之前调用 plt.savefig()

1
2
3
4
5
6
import matplotlib.pyplot as plt
 
""" 一些画图代码 """
 
plt.savefig("filename.png")
plt.show()

方法二:画图的时候获取当前图像(这一点非常类似于 Matlab 的句柄的概念):

1
2
3
4
# gcf: Get Current Figure
fig = plt.gcf()
plt.show()
fig1.savefig('tessstttyyy.png', dpi=100)

  

2.matplotlib画的图保存为emf格式

在用matplotlib保存图片时,发现不能直接保存为emf格式。百度有人说要先另存为svg格式,再使用INKSCAPE软件转换成emf格式。我试了一下,发现还是不行,后来,发现先用matplotlib存为svg格式,再用visio另存为emf是可以的

matplotlib支持的图片存储格式:eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff

1
plt.savefig('loc_svg.svg',dpi=600) #指定分辨率保存

  

 

 

 

 

 

参考文献:

【1】解决使用 plt.savefig 保存图片时一片空白

posted @   nxf_rabbit75  阅读(4985)  评论(1编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
1.保存图片为空白2.matplotlib画的图保存为emf格式
点击右上角即可分享
微信分享提示