解决plt.savefig()和plt.show()方法得到的图片不一样问题

 更新时间:2023年08月03日 09:23:34   作者:HealthScience  
这篇文章主要介绍了解决plt.savefig()和plt.show()方法得到的图片不一样问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

plt.savefig()和plt.show()方法得到的图片不一样

遇到了一个问题,在循环中,plt.savefig()和plt.show()方法得到的图片不一样,差别很大

在最后一行加入 plt.clf() 就可以了

原始代码: 

for pro in properties:
    plt.savefig("images/{}.pdf".format(pro))

正确方式:

for pro in properties:
    plt.savefig("images/{}.pdf".format(pro))
    plt.clf()

因为如果还需要在同一个脚本中继续使用 plt 对象绘制图像,需要在保存完图像后再次调用 plt.clf() 函数清空图形对象,以免影响后续绘图。

否则,如果不加入这一行,只会循环中的第一次循环plt.savefig()和plt.show()方法得到的图片一样。剩余的循环都不不一样

matplotlib绘图之savefig与show的冲突

先展示matplotlib绘的图,再进行保存

示例代码1:

import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [1,2,3,4,5]
plt.plot(x,y)
plt.show()
plt.savefig('test.png')
# 注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。

运行完代码之后保存在test.png的图片为:

图片没有任何内容

为什么出现这种情况呢?

注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。

所以保存图片的操作必须在展示图片之前

先保存matplotlib绘的图,再进行展示

示例代码2:

import matplotlib.pyplot as plt
x = [1,2,3,4,5]
y = [1,2,3,4,5]
plt.plot(x,y)
plt.savefig('test.png')
plt.show()
# 注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。

此时运行完代码之后保存在test.png的图片为:

图片有内容

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python基本类型的连接组合和互相转换方式(13种)

    Python基本类型的连接组合和互相转换方式(13种)

    这篇文章主要介绍了Python中基本类型的连接组合和互相转换13种方式,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • python通过加号运算符操作列表的方法

    python通过加号运算符操作列表的方法

    这篇文章主要介绍了python通过加号运算符操作列表的方法,实例分析了Python使用加号运算符实现列表追加的方法,需要的朋友可以参考下
    2015-07-07
  • 详解Python中如何写控制台进度条的整理

    详解Python中如何写控制台进度条的整理

    这篇文章主要介绍了详解Python中如何写控制台进度条的整理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Python爬取智联招聘数据分析师岗位相关信息的方法

    Python爬取智联招聘数据分析师岗位相关信息的方法

    这篇文章主要介绍了Python爬取智联招聘数据分析师岗位相关信息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python Pipeline处理数据工作原理探究

    Python Pipeline处理数据工作原理探究

    如果你是一个Python开发者,你可能听过"pipeline"这个术语,但 pipeline 到底是什么,它又有什么用呢?在这篇文章中,我们将探讨 Python 中的 pipeline 概念,它们是如何工作的,以及它们如何帮助你编写更清晰、更高效的代码
    2024-01-01
  • Python读写mat文件操作指南(使用scipy.io)

    Python读写mat文件操作指南(使用scipy.io)

    Matlab是一个非常好用的矩阵计算分析软件,然而随着深度学习的发展,Python语言也逐渐成为人们的常用编程语言,这篇文章主要给大家介绍了关于Python使用scipy.io读写mat文件的相关资料,需要的朋友可以参考下
    2023-06-06
  • 详解Python中HTML解析库pyquery的使用

    详解Python中HTML解析库pyquery的使用

    在工作中难免会遇到解析 HTML 的场景,比如将网页下载下来之后,要解析出里面图片的路径、指定标签里的文本等等,而 pyquery 专门负责做这件事,下面我们就来学习一下他的具体用法吧
    2023-12-12
  • 深入解析Python中的线程同步方法

    深入解析Python中的线程同步方法

    Python尽管可以创建多条线程,但是由于GIL的存在,Python的多条线程并不能同时运行,因而线程间的同步便显得更为重要,这里我们就来深入解析Python中的线程同步方法,需要的朋友可以参考下
    2016-06-06
  • Python3使用Selenium获取session和token方法详解

    Python3使用Selenium获取session和token方法详解

    这篇文章主要介绍了Python3使用Selenium获取session和token方法详解,需要的朋友可以参考下
    2021-02-02
  • Python自动化实战之接口请求的实现

    Python自动化实战之接口请求的实现

    本文为大家重点介绍如何通过 python 编码来实现我们的接口测试以及通过Pycharm的实际应用编写一个简单接口测试,感兴趣的可以了解一下
    2022-05-05

最新评论