解决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中defaultdict的具体使用

    详解Python中defaultdict的具体使用

    defaultdict 是一个类似字典的容器,属于 collections 模块, 它是字典的子类, 因此它具有词典的所有功能,下面小编就来和大家详细聊聊defaultdict的具体使用吧
    2023-10-10
  • python中正则表达式的使用详解

    python中正则表达式的使用详解

    这篇文章主要介绍了python中正则表达式的使用详解,另附上一些常用的Python正则例子,有需要的朋友可以参考下
    2014-10-10
  • 基于Python开发电脑定时关机工具

    基于Python开发电脑定时关机工具

    这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-01-01
  • python添加菜单图文讲解

    python添加菜单图文讲解

    在本篇文章中小编给大家整理的是关于python添加菜单图文讲解以及步骤分析,需要的朋友们学习下吧。
    2019-06-06
  • Python3实现的字典遍历操作详解

    Python3实现的字典遍历操作详解

    这篇文章主要介绍了Python3实现的字典遍历操作,结合实例形式分析了Python3针对字典键、键值及键值对遍历的相关操作技巧,需要的朋友可以参考下
    2018-04-04
  • python绘制三维图的详细新手教程

    python绘制三维图的详细新手教程

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,下面这篇文章主要给大家介绍了关于python绘制三维图的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • Java byte数组操纵方式代码实例解析

    Java byte数组操纵方式代码实例解析

    这篇文章主要介绍了Java byte数组操纵方式代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Python 实现 Word 转 HTML 的三种方法

    Python 实现 Word 转 HTML 的三种方法

    在日常开发和内容管理中,我们经常需要把 Word 文档转换成 HTML,以便在网页上展示或做进一步处理,Python 提供了方便的工具,下面就来详细的介绍一下,感兴趣的可以了解一下
    2026-04-04
  • Python如何实现两张图片对比得出相似度

    Python如何实现两张图片对比得出相似度

    文章介绍了在自动化测试中对比图片时可能会遇到的问题,包括时间、设备和摄像头的影响可能导致对比不准确,为了解决这个问题,建议循环对比5次,每次对比后睡眠1秒,如果其中有一次对比结果大于80%,则退出循环并认为对比成功;如果5次都对比失败,则认为图片对比失败
    2026-01-01
  • python requests模拟登陆github的实现方法

    python requests模拟登陆github的实现方法

    这篇文章主要介绍了python requests模拟登陆github的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12

最新评论