使用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画图时不能同时打开太多张图相关推荐

  1. 解决:matplotlib画图时,横坐标日期太多重叠在一起,减少横坐标数量

    解决:matplotlib画图时,横坐标日期太多重叠在一起,减少横坐标数量 使用matplotlib画图时,横坐标是日期,然后横坐标太多了,都重叠在一起.下图所示,横坐标都重叠在一起.网上查了很多资料 ...

  2. Python中使用matplotlib画图时各种大小设置

    本文将说明使用python的matplotlib画图时,如何设置图中的各种大小,包括:曲线拐点形状的大小,横纵坐标刻度.标签的大小.图例中形状的大小 比如要画下面这张图: 所有大小的设置方式在代码中进 ...

  3. python画图设置字体_【转】matplotlib画图时的中文设置

    采用matplotlib作图时默认设置下是无法显示中文的,例如编写如下python脚本, #-*- coding: utf-8 -*- from pylab import * t = arange(- ...

  4. 使用Python中的matplotlib将多个图片显示到一张图内

    在我们写论文或是汇报时,经常需要整合所得到的可视化数据结果,插入我们的论文中.如下所示的情况,我们需要将四个相关的弹性模量预测结果在一张图里展示. 使用matplotlib库中的子图(subplot) ...

  5. matplotlib画图时只需保存图片,无需图片展示

    Python编程保存图片时,往往会把图片显示出来,此时只需在调用模块matplotlib.pyplot模块之前使用matplotlib.use('Agg'),即可实现只保存图片,而不显示图片,具体代码 ...

  6. python使用matplotlib画图时在指定位置加上文字

    使用plt.text().该函数的语法如下: plt.text(x, y, s, fontdict=None, withdash=False, **kwargs) 参数说明: x 和 y:表示文本注释 ...

  7. matplotlib画图时保存图片空白的问题,

    如何解决画图的问题,写论文需要eps,导入latex,结果预览结果为空表,后来发现是下面的情况导致: jupyter notebook在一行保存不会有空白 plt.plot(x, np.sin(x)) ...

  8. python用matplotlib画图时将标签竖着显示

    添加一行代码即可,别人垂直的话改成270,但我感觉300会更好看 plt.xticks(rotation=300) 显示效果如下图:

  9. Matplotlib——画图(散点图、柱状图、等高线图、3D图)

    文章目录 1.画散点图 2.画柱状图 3.等高线图 4.image图 5.画3D图 1.画散点图 首先,先引入matplotlib.pyplot简写作plt,再引入模块numpy用来产生一些随机数据. ...

最新文章

  1. 深入理解padding_idx(nn.Embedding、nn.Embedding.from_pretrained)
  2. 洛谷P2512 糖果传递
  3. (转载)linux如何设置为低内核启动(降核)
  4. js变量前有 var 与没有的区别
  5. Leetcode 200. 岛屿数量 解题思路及C++实现
  6. VUE初长成【部分小记】
  7. php larval 胖模型,php – 从缓存中获取的Laravel模型访问器 – 性能增强
  8. @angular/platform-browser-dynamic
  9. cad在线转换_CAD转PDF批量转换怎么转?教你一次性操作,一看就会
  10. 转载: .net程序员偏向XML开发的面试题
  11. [WPF]根据显示区域宽度裁剪字符串
  12. PHP 判断变量是否定义、是否为空、是否为真
  13. linux 解压 WinRAR 压缩文件
  14. kali安装DVWA详细教程
  15. dos批处理脚本自动添加网络共享打印机-简单版且亲测可用
  16. 程序员眼中的中国传统文化-王阳明《传习录》17
  17. nb-iot和4G各有什么优势
  18. SAP中部分凭证状态导致的审计序时账和科目余额不平——会计凭证中的注释项目
  19. 伪标签(Pseudo-Labelling)介绍:一种半监督机器学习技术
  20. 小白简单式安装VM虚拟机

热门文章

  1. vue webpack打包入口文件是哪个_Vue 学习笔记(二十五):webpack 相关
  2. log4net异步写入日志_微信支付万亿日志在Hermes中的实践
  3. 史上最清楚的BP算法详解
  4. 美团点评基于Storm的实时数据处理实践
  5. 论文浅尝|简单高效的知识图谱表示学习负样本采样方法
  6. 论文浅尝 | KGAT: 用于推荐的知识图注意力网络
  7. 论文浅尝 - AAAI2020 | 多轮对话系统中的历史自适应知识融合机制
  8. 玩转算法之面试 第八章-递归与回溯
  9. pytorch基础一:张量
  10. www.sirim-global.com