Python Matplotlib中使用plt.savefig存储图片的方法举例
作者:码农研究僧 发布时间:2021-11-19 14:08:55
标签:plt.savefig,存储图片,matplotlib
前言
plt.show()展示图片的时候,截图进行保存,图片不是多么清晰
如何保存高清图也是一知识点
函数包名:import matplotlib.pyplot as plt
主要功能:
保存绘制数据后创建的图形。使用此方法可以将创建的图形保存
函数源码:(根据需要进行选择)
savefig(fname, dpi=None, facecolor='w', edgecolor='w', orientation='portrait', papertype=None,
format=None, transparent=False, bbox_inches=None, pad_inches=0.1, frameon=None, metadata=None)
参数解释:
参数 | 描述 |
---|---|
fname | 指定格式图片或者指定文件位置 |
dpi | 画质 |
facecolor 和 edgecolor | 默认为白色 |
Orientation | 横向或者纵向 |
papertype | 纸张类型 |
format | 如png、pdf |
transparent | 图片背景透明 |
bbox_inches | 图表多余的空白区去除 |
pad_inches | 保存图形周围填充 |
正常保存:plt.savefig("xx.png")
,也可以svg的格式进行保存
保存的时候需要plt.show()在plt.savefig()之后,顺序颠倒会出现图片为空白。
当前文件保存:
注意事项:
如果plt.show() 在plt.savefig()前,就会导致保存图片是空白的情况。
window的路径读取,需要反斜杠
要把所有的参数用上,可以用在直方图上
import matplotlib.pyplot as plt
x =[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
plt.hist(x)
plt.savefig("squares1.png",
bbox_inches ="tight",
pad_inches = 1,
transparent = True,
facecolor ="g",
edgecolor ='w',
orientation ='landscape')
plt.show()
截图如下:
补充:解决plt.savefig() 保存多张图片有重叠的问题
问题描述:
在多次调用plt.savefig()时,出现了保存的图片有上一个数据出现并重叠的现象。如下图:
部分代码:
import matplotlib.pyplot as plt
def ch_graph(num_clusters, ch_score, filepath, method, module):
# Plot ch graph
plt.plot(num_clusters, ch_score, 'bx-')
plt.xlabel('Number of cluster')
plt.ylabel('Calinski-Harabasz Score')
plt.title('Calinski-Harabasz Score against Number of Cluster')
plt.grid(True)
filename = 'ch_graph_one.png'
folder = 'Picture/'
ch_filepath = filepath + '/' + folder + filename
plt.savefig(ch_filepath)
def elbow_graph(num_clusters, Sum_of_squared_distances, filepath, method, module):
# Plot ch graph
plt.plot(num_clusters, Sum_of_squared_distances, 'bx-')
plt.xlabel('Number of cluster')
plt.ylabel('Sum of squared dist')
plt.title('Sum of squared dist against Number of Cluster')
plt.grid(True)
filename = 'elbow_graph_one.png'
folder = 'Picture/'
elbow_filepath = filepath + '/' + folder + filename
plt.savefig(elbow_filepath)
解决方法:
在plt.savefig()的下一行加上plt.close()就可以了。对于使用seaborn来绘制的图片,也同样使用plt.close()。
plt.close()内可输入的参数为:
None: 目前的figure
Figure: 给定的Figure实例
int: 一个 figure数
str: 一个 figure名字
‘all’: 全部 figures
另外,有时候也会因为没有关闭上一个canvas, 导致出现以下问题:
fig.canvas.draw_idle() # need this if 'transparent=True' to reset colors
来源:https://blog.csdn.net/weixin_47872288/article/details/128739356


猜你喜欢
- 本文实例讲述了python访问系统环境变量的方法。分享给大家供大家参考。具体如下:#----------------------------
- 这篇文章主要介绍了python dumps和loads区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 1. 类的继承与方法的重载上面就是先定义了一个类A,然后由定义了一个类B,B继承了类A,这样B就有了A的非私有属性和方法。class Was
- 一、题目内容给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的
- 本文实例讲述了Python素数检测的方法。分享给大家供大家参考。具体如下:该程序实现了素数检测器功能,如果结果是true,则是素数,如果结果
- 代码如下: <!--[if IE 6]><script type="text/javascript"&
- 图像在计算机中的存储图像其实就是一个像素值组成的矩阵。1、黑白或灰度图像如何存储在计算机中在这里,我们已经采取了黑白图像,也被称为一个灰度图
- 具体的 websocket 介绍可见 http://zh.wikipedia.org/wiki/WebSocket 这里,介绍如何
- 本文实例讲述了在Python中模仿POST HTTP数据及带Cookie提交数据的实现方法,分享给大家供大家参考。具体实现方法如下:方法一如
- GO实现内存数据库实现Redis的database层(核心层:处理命令并返回)https://github.com/csgopher/go-
- Three.js是一个伟大的开源WebGL库,WebGL允许JavaScript操作GPU,在浏览器端实现真正意义的3D。但是目前这项技术还
- 前言time库运行访问多种类型的时钟,这些时钟用于不同的场景。本篇,将详细讲解time库的应用知识。获取各种时钟既然time库提供了多种类型
- 从 webpack book 的 Loading Assets 一章中延申出来。改善前端项目体验中,很重要的点就是静态资源的优化。它是由于浏
- 今日大致浏览了一下《High Performance Web Sites》。本书的中文版是《高性能网站建设指南》。本书另有对其中个别问题深入
- python可以方便地支持多线程。可以快速创建线程、互斥锁、信号量等等元素,支持线程读写同步互斥。美中不足的是,python的运行在pyth
- 继承是面向对象编程的一个重要的方式,因为通过继承,子类就可以扩展父类的功能。回忆一下Animal类层次的设计,假设我们要实现以下4种动物:&
- 后台管理配置动态路由菜单前段时间做一个后台管理项目,因为超级管理员可以给普通管理员动态更改权限,所以vue-element-admin里的写
- 主要步骤1.生成普通python数组(bytearray(),os.urandom())2.转换成numpy数组(numpy.array()
- python 打印对象的所有属性值:def prn_obj(obj): print '\n'.join([
- 缩进Python最具特色的是用缩进来标明成块的代码。我下面以if选择结构来举例。if后面跟随条件,如果条件成立,则执行归属于if的一个代码块