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

目录
  • 前言
  • 主要功能:
  • 函数源码:(根据需要进行选择)
  • 参数解释:
  • 注意事项:
  • 补充:解决plt.savefig() 保存多张图片有重叠的问题
  • 总结

前言

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()内可输入的参数为:

  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

总结

到此这篇关于Python Matplotlib中使用plt.savefig存储图片的文章就介绍到这了,更多相关Matplotlib用plt.savefig存储图片内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决matplotlib库show()方法不显示图片的问题

    最近使用python里的matplotlib库绘图,想在代码结束时显示图片看看,结果图片一闪而过,附上我原来代码: import matplotlib.pyplot as plt import numpy as np import pandas as pd ... ... #type(forecast)=<class 'pandas.core.frame.DataFrame'> pic01=m.plot(forecast) pic01.show() 我上网查了一下,在遇到show()方法无法显

  • python使用matplotlib的savefig保存时图片保存不完整的问题

    python使用matplotlib的savefig保存时图片保存不完整的问题 使用如下形式的代码进行图片保存时,保存的图片出现不完整的情况,如图1所示. plt.colorbar() plt.savefig(title) plt.show() 一开始我以为是图片大小比例不对,因而通过以下代码进行修改: plt.figure(figsize=(10,8)) 但是无论怎么修改,始终会出现这种情况,要么是下面显示不完全,要么就是左边显示不完全.这是为什么呢? 这是因为colorbar会占据右边位置,

  • matplotlib 使用 plt.savefig() 输出图片去除旁边的空白区域

    最近在作图时需要将输出的图片紧密排布,还要去掉坐标轴,同时设置输出图片大小. 要让程序自动将图表保存到文件中,代码为: plt.savefig('squares_plot.png', bbox_inches='tight') 第一个实参指定要以什么样的文件名保存图表,这个文件将存储到scatter_squares.py所在的目录中. 第二个实参指定将图表多余的空白区域裁减掉.如果要保留图表周围多余的空白区域,可省略这个实参. 但是发现matplotlib使用plt.savefig()保存的图片

  • python matplotlib中的subplot函数使用详解

    python里面的matplotlib.pylot是大家比较常用的,功能也还不错的一个包.基本框架比较简单,但是做一个功能完善且比较好看整洁的图,免不了要网上查找一些函数.于是,为了节省时间,可以一劳永逸.我把常用函数作了一个总结,最后写了一个例子,以后基本不用怎么改了. 一.作图流程: 1.准备数据, , 3作图, 4定制, 5保存, 6显示 1.数据可以是numpy数组,也可以是list 2创建画布: import matplotlib.pyplot as plt #figure(num=N

  • 基于Linux系统中python matplotlib画图的中文显示问题的解决方法

    最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些初步的数据挖掘和分析. 在使用matplotlib画图时,横坐标为中文,但是画出的条形图横坐标总是显示"框框",就去查资料解决.感觉这应该是个比较常见的问题,网上的中文资料也确实很多,但是没有任何一个彻底解决了我遇到的问题.零零碎碎用了快3个小时的时间,才终于搞定.特此分享,希望能帮到有同

  • 往MySQL中存储图片的方法

    1 介绍 在设计到数据库的开发中,难免要将图片或音频文件插入到数据库中的情况.一般来说,我们可以同过插入图片文件相应的存储位置,而不是文件本身,来避免直接向数据库里插入的麻烦.但有些时候,向MySQL中插入图片更加容易管理.那么在MySQL中该怎么存储呢? 参考资料[1]中有个相当清晰的例子,不过是基于MySQL图形界面的查询工具Query Brower的,你的机子上没有安装的话,可能得不到很好的理解.我在这里不在赘述,更详细的资料请看给出的链接吧. 还有,[1]中的例子其实只是向我们说明了Qu

  • Python使用爬虫爬取静态网页图片的方法详解

    本文实例讲述了Python使用爬虫爬取静态网页图片的方法.分享给大家供大家参考,具体如下: 爬虫理论基础 其实爬虫没有大家想象的那么复杂,有时候也就是几行代码的事儿,千万不要把自己吓倒了.这篇就清晰地讲解一下利用Python爬虫的理论基础. 首先说明爬虫分为三个步骤,也就需要用到三个工具. ① 利用网页下载器将网页的源码等资源下载. ② 利用URL管理器管理下载下来的URL ③ 利用网页解析器解析需要的URL,进而进行匹配. 网页下载器 网页下载器常用的有两个.一个是Python自带的urlli

  • 在Python dataframe中出生日期转化为年龄的实现方法

    我们在做数据挖掘项目或大数据竞赛时,如果个体是人的时候,获得的数据中可能有出生日期的Series,举个简单例子,比如这样的一些数: # -*- coding: utf-8 -*- import pandas as pd from pandas import Series, DataFrame import numpy as np import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline data = {'bi

  • python pandas中DataFrame类型数据操作函数的方法

    python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数据及属性 df_obj = DataFrame() #创建DataFrame对象 df_obj.dtypes #查看各行的数据格式 df_obj['列名'].astype(int)#转换某列的数据类型 df_obj.head() #查看前几行的数据,默认前5行 df_obj.tail() #查看后几

  • Python 实现中值滤波、均值滤波的方法

    红包: Lena椒盐噪声图片: # -*- coding: utf-8 -*- """ Created on Sat Oct 14 22:16:47 2017 @author: Don """ from tkinter import * from skimage import io import numpy as np im=io.imread('lena_sp.jpg', as_grey=True) im_copy_med = io.imrea

  • Python Numpy中数据的常用保存与读取方法

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件进行介绍: 1.保存为二进制文件(.npy/.npz) numpy.save 保存一个数组到一个二进制的文件中,保存格式是.npy 参数介绍 numpy.save(file, arr, allow_pickle=True, fix_imports=True) file:文件名/文件路径 arr:要存

  • Android中TextView显示插入的图片实现方法

    本文实例讲述了Android中TextView显示插入的图片实现方法.分享给大家供大家参考,具体如下: Android系统默认给TextView插入图片提供了三种方式: 1.ImageSpan 2.Html.ImageGetter 3.TextView.setCompoundDrawables(left, top, right, bottom) 1.TextView使用ImageSpan显示图片 ImageSpan span = new ImageSpan(this, R.drawable.ic

随机推荐