plt.imshow与plt.show区别之交互与阻塞模式

原文地址

在使用matplotlib的过程中,常常会需要画很多图,但是好像并不能同时展示许多图?这是因为python可视化库matplotlib的显示模式默认为阻塞(block)模式。

  • pycharm(IDE)

    使用plt.ion()这个函数,使matplotlib的显示模式转换为交互(interactive)模式。即使在脚本中遇到 plt.show(),代码还是会继续执行。

  • linux交互编译器
    交互式编译器直接采用的就是“交互模式”,显示图像使用plt.imshow(x)即可,可使用plt.figure()展示多个窗口。不需要在后面加plt.show(),虽然加了也不会报错,但会开启“阻塞模式”,需要关闭图像才可继续运行后续代码。针对显示图像秒关的问题,可以在plt.imshow(x)后加上plt.pause(15),数字代表秒数。

  • 在交互模式下

    • plt.plot(x)或plt.imshow(x)直接显示图像,不需要补充添加plt.show()。
    • 如果在脚本中使用ion()命令开启了交互模式,没有使用ioff()关闭的话,则图像会一闪而过,并不会常留。要想防止这种情况,需要在plt.show()之前加上ioff()命令。
  • 在阻塞模式下:

    • 打开一个窗口以后必须关掉才能打开下一个新的窗口。这种情况下,默认是不能像Matlab一样同时开很多窗口进行对比的。使用plt.show()之后,程序会暂停该语句处,并不会继续执行下去。只有关闭当前图片,程序才可以继续执行。
    • plt.plot(x)或plt.imshow(x)是直接出图像,需要plt.show()后才能显示图像.
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值