基于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类的基础入门知识
Nov 24 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
Feb 11 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
Mar 30 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
python zip()函数使用方法解析
Oct 31 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
TensorFlow基本的常量、变量和运算操作详解
Feb 03 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
Mar 09 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
python爬虫基础知识点整理
Jun 02 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
pytorch学习教程之自定义数据集
Nov 10 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
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
js中点击空白区域时文本框与隐藏层的显示与影藏问题
2013/08/26 Javascript
jQuery实现购物车表单自动结算效果实例
2015/08/10 Javascript
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
Vue中"This dependency was not found"问题的解决方法
2018/06/19 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
[01:02:26]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第二场 1月18日
2021/03/11 DOTA
python设置windows桌面壁纸的实现代码
2013/01/28 Python
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
自己编程中遇到的Python错误和解决方法汇总整理
2015/06/03 Python
Python字符串处理实例详解
2017/05/18 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
2019/05/10 Python
python实现ip地址的包含关系判断
2020/02/07 Python
使用HTML5的Notification API制作web通知的教程
2015/05/08 HTML / CSS
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
机械工程系毕业生求职信
2013/09/27 职场文书
创伤外科专业推荐信范文
2013/11/19 职场文书
爱心倡议书范文
2014/05/12 职场文书
给客户的感谢信
2015/01/21 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书
关于分班的感言
2015/08/04 职场文书
golang 语言中错误处理机制
2021/08/30 Golang
vue封装数字翻牌器
2022/04/20 Vue.js
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电