使用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()
实验证明,用第二种方法会比第一种方法快很多
使用matplotlib画图时不能同时打开太多张图相关推荐
- 解决:matplotlib画图时,横坐标日期太多重叠在一起,减少横坐标数量
解决:matplotlib画图时,横坐标日期太多重叠在一起,减少横坐标数量 使用matplotlib画图时,横坐标是日期,然后横坐标太多了,都重叠在一起.下图所示,横坐标都重叠在一起.网上查了很多资料 ...
- Python中使用matplotlib画图时各种大小设置
本文将说明使用python的matplotlib画图时,如何设置图中的各种大小,包括:曲线拐点形状的大小,横纵坐标刻度.标签的大小.图例中形状的大小 比如要画下面这张图: 所有大小的设置方式在代码中进 ...
- python画图设置字体_【转】matplotlib画图时的中文设置
采用matplotlib作图时默认设置下是无法显示中文的,例如编写如下python脚本, #-*- coding: utf-8 -*- from pylab import * t = arange(- ...
- 使用Python中的matplotlib将多个图片显示到一张图内
在我们写论文或是汇报时,经常需要整合所得到的可视化数据结果,插入我们的论文中.如下所示的情况,我们需要将四个相关的弹性模量预测结果在一张图里展示. 使用matplotlib库中的子图(subplot) ...
- matplotlib画图时只需保存图片,无需图片展示
Python编程保存图片时,往往会把图片显示出来,此时只需在调用模块matplotlib.pyplot模块之前使用matplotlib.use('Agg'),即可实现只保存图片,而不显示图片,具体代码 ...
- python使用matplotlib画图时在指定位置加上文字
使用plt.text().该函数的语法如下: plt.text(x, y, s, fontdict=None, withdash=False, **kwargs) 参数说明: x 和 y:表示文本注释 ...
- matplotlib画图时保存图片空白的问题,
如何解决画图的问题,写论文需要eps,导入latex,结果预览结果为空表,后来发现是下面的情况导致: jupyter notebook在一行保存不会有空白 plt.plot(x, np.sin(x)) ...
- python用matplotlib画图时将标签竖着显示
添加一行代码即可,别人垂直的话改成270,但我感觉300会更好看 plt.xticks(rotation=300) 显示效果如下图:
- Matplotlib——画图(散点图、柱状图、等高线图、3D图)
文章目录 1.画散点图 2.画柱状图 3.等高线图 4.image图 5.画3D图 1.画散点图 首先,先引入matplotlib.pyplot简写作plt,再引入模块numpy用来产生一些随机数据. ...
最新文章
- 深入理解padding_idx(nn.Embedding、nn.Embedding.from_pretrained)
- 洛谷P2512 糖果传递
- (转载)linux如何设置为低内核启动(降核)
- js变量前有 var 与没有的区别
- Leetcode 200. 岛屿数量 解题思路及C++实现
- VUE初长成【部分小记】
- php larval 胖模型,php – 从缓存中获取的Laravel模型访问器 – 性能增强
- @angular/platform-browser-dynamic
- cad在线转换_CAD转PDF批量转换怎么转?教你一次性操作,一看就会
- 转载: .net程序员偏向XML开发的面试题
- [WPF]根据显示区域宽度裁剪字符串
- PHP 判断变量是否定义、是否为空、是否为真
- linux 解压 WinRAR 压缩文件
- kali安装DVWA详细教程
- dos批处理脚本自动添加网络共享打印机-简单版且亲测可用
- 程序员眼中的中国传统文化-王阳明《传习录》17
- nb-iot和4G各有什么优势
- SAP中部分凭证状态导致的审计序时账和科目余额不平——会计凭证中的注释项目
- 伪标签(Pseudo-Labelling)介绍:一种半监督机器学习技术
- 小白简单式安装VM虚拟机
热门文章
- vue webpack打包入口文件是哪个_Vue 学习笔记(二十五):webpack 相关
- log4net异步写入日志_微信支付万亿日志在Hermes中的实践
- 史上最清楚的BP算法详解
- 美团点评基于Storm的实时数据处理实践
- 论文浅尝|简单高效的知识图谱表示学习负样本采样方法
- 论文浅尝 | KGAT: 用于推荐的知识图注意力网络
- 论文浅尝 - AAAI2020 | 多轮对话系统中的历史自适应知识融合机制
- 玩转算法之面试 第八章-递归与回溯
- pytorch基础一:张量
- www.sirim-global.com