博客
关于我
Python Matplotlib 中如何用 plt.savefig 存储图片
阅读量:803 次
发布时间:2023-03-06

本文共 1458 字,大约阅读时间需要 4 分钟。

前言

plt.show()展示图片时,截图保存可能不够清晰,如何保存高清图也是一大知识点。

函数包名为:

import matplotlib.pyplot as plt

1. 基本知识

主要功能:保存绘制数据后创建的图形。使用此方法可以将创建的图形保存。

函数源码:

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

2. Bug彩蛋

在使用Matplotlib保存图片时,确保在调用plt.show()之前进行保存是一个常见的做法,因为plt.show()会清除当前的图形。但是,即使将plt.savefig()放在plt.show()之前,如果代码仍然产生空白图像,可能有几个原因:
  • 缺少必要的渲染步骤:在某些情况下,Matplotlib可能需要明确的渲染步骤才能正确地保存图形。可以尝试在保存之前调用plt.draw()来确保图形已经渲染。
  • 图形被覆盖或重叠:有时候,图形可能会被其他元素覆盖或重叠,导致保存的图像为空白。这可能是由于设置了错误的坐标轴范围或覆盖了图形的其他元素所致。可以尝试调整坐标轴范围或将图形的元素移动到合适的位置。
  • 未正确关闭图形:如果在保存图形之前没有关闭当前的图形窗口,可能会导致保存的图像为空白。可以尝试在保存之前调用plt.close()来关闭当前的图形窗口。
  • 透明度设置问题:在plt.savefig()中设置了transparent=True,可能导致保存的图像为空白,特别是当图形中没有任何透明元素时。可以尝试将transparent参数设置为False,并查看是否有所改善。
  • 以上Bug是泛泛而谈,详细的Bug排查需要一步步探底。

    转载地址:http://uoafk.baihongyu.com/

    你可能感兴趣的文章
    Python Dict 理解创建和更新字典
    查看>>
    Python Discord Bot - python clear_reaction() 清除所有反应而不是特定反应
    查看>>
    python django mysql写入中文乱码_django自动创建的mysql表里面中文乱码问题
    查看>>
    python docx的超链接网址和链接文本
    查看>>
    python elasticsearch 导出数据到json文件导入到另一个es中
    查看>>
    python ETL工具 pyetl
    查看>>
    Python eval 函数说明
    查看>>
    python eval简介
    查看>>
    python excel 饼图 简书_Python实现绘画多个饼图
    查看>>
    python excel接口自动化测试框架!
    查看>>
    Python exec 函数解析:探索动态代码执行的无限可能!
    查看>>
    Python EXEC和__NAME__
    查看>>
    python file
    查看>>
    Python FileDialog获取文件夹路径不是文件
    查看>>
    python filter过滤器的使用_python基础知识分享:zip()、filter函数和reduce如何使用?...
    查看>>
    python flask 请求code 400, message Bad request version
    查看>>
    Python Flink Stateful函数入口上的Kafka键访问
    查看>>
    Python float - str - 浮动怪异
    查看>>
    Python Flower库:分布式任务管理与监控
    查看>>
    Python for 循环和迭代器行为
    查看>>