使用matplotlib画图时不能同时打开太多张图

使用matplotlib画图时有时会收到来自matplotlib的runtime warming的警告,原因可能是同时打开太多张图,最常见的情况是在一个循环中画图,每次循环都新建一个图,但是未关闭新建的图,当循环次数多了之后内存就吃不消了。

有两种解决方法,一是只建一个图,每次循环结束后通过plt.cla()清除图的内容,下次循环可以使用同一张图作画,例子如下:

import os
import scipy
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
from tqdm import tqdmdata_path = r"D:\PycharmProjects\dataset"def load_mnist():path = os.path.join(data_path, 'mnist')fd = open(os.path.join(path, 't10k-images-idx3-ubyte'))loaded = np.fromfile(file=fd, dtype=np.uint8)teX = loaded[16:].reshape((10000, 28, 28, 1)).astype(np.float)teX = teX / 255.return teXteX = load_mnist()
fig, ax = plt.subplots(nrows=5, ncols=5, sharex='all', sharey='all') # 只建一张包含25个子图的图
ax = ax.flatten()
for j in range(3):for i in range(25):img = teX[i + j * 25].reshape(28, 28)ax[i].imshow(img, cmap='Greys', interpolation='nearest')ax[0].set_xticks([])ax[0].set_yticks([])plt.tight_layout()  # 自动紧凑布局plt.savefig(r"D:\test\%d.png" % j)plt.cla() # 清除内容

第二种方法是每次循环都新建一张图,但是每次循环结束后关闭这张图,例子如下:

import os
import scipy
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
from tqdm import tqdmdata_path = r"D:\PycharmProjects\dataset"def load_mnist():path = os.path.join(data_path, 'mnist')fd = open(os.path.join(path, 't10k-images-idx3-ubyte'))loaded = np.fromfile(file=fd, dtype=np.uint8)teX = loaded[16:].reshape((10000, 28, 28, 1)).astype(np.float)teX = teX / 255.return teXteX = load_mnist() # 获取mnist的测试数据for j in range(3): # 画三张图fig, ax = plt.subplots(nrows=5, ncols=5, sharex='all', sharey='all') # 每次都新建一张包含25个子图的图ax = ax.flatten()for i in range(25):img = teX[i + j * 25].reshape(28, 28)ax[i].imshow(img, cmap='Greys', interpolation='nearest')ax[0].set_xticks([])ax[0].set_yticks([])plt.tight_layout()  # 自动紧凑布局plt.savefig(r"D:\test\%d.png" % j)plt.close()

实验证明,用第二种方法会比第一种方法快很多

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV与图像处理学习一——图像基础知识、读入、显示、保存图像、灰度转化、通道分离与合并

OpenCV与图像处理学习一——图像基础知识、读入、显示、保存图像、灰度转化、通道分离与合并一、图像基础知识1.1 数字图像的概念1.2 数字图像的应用1.3 OpenCV介绍二、图像属性2.1 图像格式2.2 图像尺寸2.2.1 读入图像2.2.2 显示图像2.2.3 保存图像2.3 图像分辨率和通道数2.3.…

【Docker】Docker学习笔记:安装部署

Docker 是实现轻量级的操作系统虚拟化解决方案。 Docker目前已经支持非常多的Linux平台,Ubuntu、Red Hat企业版Linux、Debian、CentOs、Fedora、Oracle Linux等。如果使用虚拟环境,甚至可以在OS X 和 windows中运行。 安装的条件 Docker目前只能在64位CP…

定了!5G商用牌照近期发放​​​​,透露两大信息(附:2019年5G行业关键材料及市场研究报告)...

来源:世界科技创新论坛据工信微报和新华社消息:日前,全球5G正在进入商用部署的关键期。坚持自主创新与开放合作相结合,我国5G产业已建立竞争优势。5G标准是全球产业界共同参与制定的统一国际标准,我国声明的标准必要专…

python保存和加载数组

通过np.save("filename.npy",a)保存数组,数组可以为高维。利用这种方法,保存文件的后缀名字一定会被置为.npy,这种格式最好只用numpy.load("filename")来读取。 举个例子: import numpy as npa np.array([…

OpenCV与图像处理学习二——图像直方图与色彩空间

OpenCV与图像处理学习二——图像直方图与色彩空间2.4 图像直方图(Image Histogram)2.4.1 直方图的绘制2.4.2 三通道直方图绘制2.5 颜色空间2.5.1 RGB颜色空间2.5.2 HSV颜色空间(Hue、Saturation、Value)2.5.3 HSI2.5.4 CMYK&#…

JavaScript基础5——关于ECMAscript的函数

ECMAScript的函数概述(一般定义到<head>标签之间)(1)定义函数&#xff0c;JavaScript一般有三种定义函数方法&#xff1a; *第一种是使用function语句定义函数&#xff08;静态方法&#xff09; 1 function 函数名(var1,var2,...,varX) 2 { 3 4 代码&…

中国科学家首次观察到量子世界的宇称时间对称

来源&#xff1a;中国新闻网 中国科学家调控量子跳双人舞 首次观察到量子世界的宇称时间对称中新社合肥6月3日电 (吴兰 范琼)记者3日从中国科学技术大学获悉&#xff0c;该校杜江峰院士的研究团队通过调控量子跳出双人舞&#xff0c;在国际上首次观察到量子世界的宇称时间对称。…

tf.data详解

转自https://www.cnblogs.com/hellcat/p/8569651.html Dataset有两个重要的类&#xff1a;Dataset和Iterator。 Dataset可以看作是相同类型“元素”的有序列表。在实际使用时&#xff0c;单个“元素”可以是向量&#xff0c;也可以是字符串、图片&#xff0c;甚至是tuple或者…

nodejs设置x-xss-protection解决xss问题

在Node.js中设置X-XSS-Protection可以通过使用helmet库来完成。 首先&#xff0c;确保已经安装了helmet库。如果没有安装&#xff0c;可以运行以下命令进行安装&#xff1a; npm install helmet --save 然后&#xff0c;在你的Node.js应用程序中引入并配置helmet库&#xff…

OpenCV与图像处理学习三——线段、矩形、圆、椭圆、多边形的绘制以及文字的添加

OpenCV与图像处理学习三——线段、矩形、圆、椭圆、多边形的绘制以及文字的添加一、OpenCV中的绘图函数1.1 线段绘制1.2 矩形绘制1.3 圆绘制1.4 椭圆的绘制1.5 多边形绘制1.6 添加文字上两次笔记主要知识点回顾&#xff1a; 数字图像基本概念图像的读取、显示与保存图像直方图…

第二百一十九天 how can I 坚持

今天好冷&#xff0c;白天在家待了一天&#xff0c;晚上&#xff0c;老贾生日&#xff0c;生日快乐&#xff0c;去海底捞吃了个火锅&#xff0c;没感觉呢。 今天还发现了个好游戏&#xff0c;纪念碑谷&#xff0c;挺新颖&#xff0c;就是难度有点大了。 好累。睡觉&#xff0c;…

AI英雄 | 论人工智能与自由意志,请看尤瓦尔与李飞飞的这场“激辩”

来源&#xff1a;Towards Data Science尤瓦尔赫拉利和李飞飞在斯坦福大学展开了一场别开生面的对话&#xff0c;他们所提出的问题已经远远超出了我们可以解答的范围。《连线》杂志主编尼古拉斯•汤普森在座无虚席的纪念礼堂主持了这场90分钟的谈话。赫拉利&#xff08;Harari&a…

OpenCV与图像处理学习四——图像几何变换:平移、缩放、旋转、仿射变换与透视变换

OpenCV与图像处理学习四——图像几何变换&#xff1a;平移、缩放、旋转、仿射变换与透视变换二、图像的几何变换2.1 图像平移2.2 图像缩放&#xff08;上采样与下采样&#xff09;2.3 图像旋转2.4 仿射变换2.5 透视变化2.6 几何变化小结续上次的笔记&#xff1a;OpenCV与图像处…

python打乱顺序的洗牌函数

numpy.random.shuffle&#xff08;x&#xff09; x&#xff1a;序列或者数组 对于多维数组&#xff0c;只对第一维进行洗牌&#xff0c;子数组的顺序改变了&#xff0c;但是它们的内容保持不变。 >>> arr np.arange(10) >>> np.random.shuffle(arr) >…

课后作业和动手动脑

一&#xff0c;运行TestInherits.java 通过super调用基类构造方法&#xff0c;必是子类构造方法中的第一个语句。 二.为什么子类的构造方法在运行之前&#xff0c;必须调用父类的构造方法&#xff1f;能不能反过来&#xff1f;为什么不能反过来&#xff1f; 构造函数的主要作用…

OpenCV与图像处理学习五——图像滤波与增强:线性、非线性滤波、直方图均衡化与Gamma变换

OpenCV与图像处理学习五——图像滤波与增强&#xff1a;线性、非线性滤波、直方图均衡化与Gamma变换三、图像滤波与增强3.1 线性滤波3.1.1 方框滤波3.1.2 均值滤波3.1.3 高斯滤波3.1.4 一般卷积滤波3.2 非线性滤波3.2.1 中值滤波3.2.2 双边滤波3.3 图像直方图均衡化3.3.1 单通道…

张钹院士:人工智能技术已进入第三代

来源&#xff1a;经济观察报近日&#xff0c;中科院院士、清华大学人工智能研究院院长张钹教授接受记者采访时认为&#xff0c;目前基于深度学习的人工智能在技术上已经触及天花板。从长远来看&#xff0c;必须得走人类智能这条路&#xff0c;最终要发展人机协同&#xff0c;人…

软件工程作业

典型用户1 名字老陈性别&#xff0c;年龄男&#xff0c;40岁职业教师收入两万/年知识层次和能力本科&#xff0c;熟练计算机操作生活、工作情况教书&#xff0c;辅导孩子完成作业动机&#xff0c;目的&#xff0c;困难希望节省辅导孩子的时间&#xff0c;用于自己的业务工作用户…

numpy.ndarray索引/切片方式

注意&#xff1a;获得多维数组的前三个子数组不能用array[0,1,2]&#xff0c;应该用 array[0:3]&#xff0c;如下例子&#xff1a; a np.random.random([85, 7794, 64]) b a[0:3] print(np.shape(b)) # (3, 7794, 64)

OpenCV与图像处理学习六——图像形态学操作:腐蚀、膨胀、开、闭运算、形态学梯度、顶帽和黑帽

OpenCV与图像处理学习六——图像形态学操作&#xff1a;腐蚀、膨胀、开、闭运算、形态学梯度、顶帽和黑帽四、图像形态学操作4.1 腐蚀和膨胀4.1.1 图像腐蚀4.1.2 图像膨胀4.2 开运算与闭运算4.2.1 开运算4.2.2 闭运算4.3 形态学梯度&#xff08;Gradient&#xff09;4.4顶帽和黑…