基于matplotlib中ion()和ioff()的使用详解


Posted in Python onJune 16, 2020

介绍

在使用matplotlib的过程中,发现不能像matlab一样同时开几个窗口进行比较,于是查询得知了交互模式,但是放在脚本里运行的适合却总是一闪而过,图像并不停留,遂仔细阅读和理解了一下文档,记下解决办法,问题比较简单,仅供菜鸟参考。

python可视化库matplotlib有两种显示模式:

阻塞(block)模式

交互(interactive)模式

在Python Consol命令行中,默认是交互模式。而在python脚本中,matplotlib默认是阻塞模式。

其中的区别是:

在交互模式下:

plt.plot(x)或plt.imshow(x)是直接出图像,不需要plt.show()

如果在脚本中使用ion()命令开启了交互模式,没有使用ioff()关闭的话,则图像会一闪而过,并不会常留。要想防止这种情况,需要在plt.show()之前加上ioff()命令。

在阻塞模式下:

打开一个窗口以后必须关掉才能打开下一个新的窗口。这种情况下,默认是不能像Matlab一样同时开很多窗口进行对比的。

plt.plot(x)或plt.imshow(x)是直接出图像,需要plt.show()后才能显示图像

示例

下面这个例子讲的是如何像matlab一样同时打开多个窗口显示图片或线条进行比较,同时也是在脚本中开启交互模式后图像一闪而过的解决办法:

import matplotlib.pyplot as plt
  plt.ion()  # 打开交互模式
  # 同时打开两个窗口显示图片
  plt.figure()
  plt.imshow(i1)
  plt.figure()
  plt.imshow(i2)
  # 显示前关掉交互模式
  plt.ioff()
  plt.show()

补充知识:matplotlib.pyplot的两种模式

在交互模式下:

1、plt.plot(x)或plt.imshow(x)是直接出图像,不需要plt.show()

2、如果在脚本中使用ion()命令开启了交互模式,没有使用ioff()关闭的话,则图像会一闪而过,并不会常留。要想防止这种情况,需要在plt.show()之前加上ioff()命令。

在阻塞模式下:

1、打开一个窗口以后必须关掉才能打开下一个新的窗口。这种情况下,默认是不能像Matlab一样同时开很多窗口进行对比的。

2、plt.plot(x)或plt.imshow(x)是直接出图像,需要plt.show()后才能显示图像。

示例代码

with tf.Session() as sess:
  sess.run(init)
 
  fig = plt.figure()
  ax = fig.add_subplot(1,1,1)
  ax.scatter(x_data,y_data)
  plt.ion()  #将画图模式改为交互模式
 
  for i in range(1000):
    sess.run(train_step,feed_dict={xs:x_data,ys:y_data})
    if i%50 ==0:
      plt.pause(0.1)
      try:
        ax.lines.remove(lines[0])
      except Exception:
        pass
      prediction_value = sess.run(prediction,feed_dict={xs:x_data})
      lines = ax.plot(x_data,prediction_value,'r-',lw=5)
 
 
      print(sess.run(loss,feed_dict={xs:x_data,ys:y_data}))
 
  plt.ioff()
  plt.show()

以上这篇基于matplotlib中ion()和ioff()的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python批量制作雷达图的实现方法
Jul 26 Python
Python使用回溯法子集树模板解决迷宫问题示例
Sep 01 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
python模拟事件触发机制详解
Jan 19 Python
python 定时修改数据库的示例代码
Apr 08 Python
基于Python开发chrome插件的方法分析
Jul 07 Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
JetBrains PyCharm(Community版本)的下载、安装和初步使用图文教程详解
Mar 19 Python
分享一枚pycharm激活码适用所有pycharm版本我的pycharm2020.2.3激活成功
Nov 20 Python
python实现简易名片管理系统
Apr 11 Python
Pytorch 统计模型参数量的操作 param.numel()
May 13 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 #Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 #Python
使用python matploblib库绘制准确率,损失率折线图
Jun 16 #Python
为什么称python为胶水语言
Jun 16 #Python
在Keras中利用np.random.shuffle()打乱数据集实例
Jun 15 #Python
Python Socket TCP双端聊天功能实现过程详解
Jun 15 #Python
Python实现验证码识别
Jun 15 #Python
You might like
PHP 裁剪图片成固定大小代码方法
2009/09/09 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
为PHP安装imagick时出现Cannot locate header file MagickWand.h错误的解决方法
2014/11/03 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
JavaScript获取onclick、onchange等事件值的代码
2013/07/22 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
javascript常用方法汇总
2014/12/02 Javascript
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
Python向excel中写入数据的方法
2019/05/05 Python
python使用 cx_Oracle 模块进行查询操作示例
2019/11/28 Python
Python callable内置函数原理解析
2020/03/05 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
Kipling澳洲官网:购买凯浦林包包
2020/12/17 全球购物
公司离职证明范本
2014/01/13 职场文书
应届毕业生个人求职信范文
2014/01/29 职场文书
学生打架检讨书
2014/02/14 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
开票员岗位职责
2015/02/12 职场文书
幼儿园中秋节活动总结
2015/03/23 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python
一文简单了解MySQL前缀索引
2022/04/03 MySQL