Python Matplotlib中使用plt.savefig存储图片的方法举例

作者:码农研究僧 时间:2021-11-19 14:08:55 

前言

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()

截图如下:

Python Matplotlib中使用plt.savefig存储图片的方法举例

补充:解决plt.savefig() 保存多张图片有重叠的问题

问题描述:

在多次调用plt.savefig()时,出现了保存的图片有上一个数据出现并重叠的现象。如下图:

Python Matplotlib中使用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()内可输入的参数为:

  1. None: 目前的figure

  2. Figure: 给定的Figure实例

  3. int: 一个 figure数

  4. str: 一个 figure名字

  5. ‘all’: 全部 figures

另外,有时候也会因为没有关闭上一个canvas, 导致出现以下问题:

fig.canvas.draw_idle()   # need this if 'transparent=True' to reset colors

来源:https://blog.csdn.net/weixin_47872288/article/details/128739356

标签:plt.savefig,存储图片,matplotlib
0
投稿

猜你喜欢

  • python实现LRU热点缓存及原理

    2022-01-08 01:26:15
  • python 美化输出信息的实例

    2022-04-15 09:53:54
  • YUI Compressor快速使用指南

    2011-06-27 20:07:30
  • 网页设计图标使用指南[译]

    2009-03-11 21:13:00
  • python深度学习tensorflow安装调试教程

    2021-06-28 23:03:51
  • 150行python代码实现贪吃蛇游戏

    2021-07-15 06:43:20
  • 使用Flask和Django中解决跨域请求问题

    2023-01-16 10:03:10
  • [翻译]标记语言和样式手册 Chapter 11 打印样式

    2008-02-11 18:44:00
  • 浅析PHP中json_encode与json_decode的区别

    2023-07-04 04:46:46
  • 详解MySQL中ALTER命令的使用

    2024-01-26 12:27:25
  • Python函数式编程指南(四):生成器详解

    2023-08-23 05:50:02
  • Python解析多帧dicom数据详解

    2022-08-13 21:16:13
  • python正则表达式之对号入座篇

    2021-03-31 17:59:55
  • defineProperty和Proxy基础功能及性能对比

    2024-06-05 09:19:42
  • Python 模拟购物车的实例讲解

    2021-01-13 05:24:08
  • 源码分析系列之json_encode()如何转化一个对象

    2023-07-15 05:25:54
  • javascript面向对象三大特征之封装实例详解

    2023-08-23 21:39:04
  • python装饰器使用实例详解

    2021-09-30 15:26:50
  • prototype-1.4.0注释版源代码下载

    2007-09-30 14:06:00
  • 安装2019Pycharm最新版本的教程详解

    2023-06-25 23:27:54
  • asp之家 网络编程 m.aspxhome.com