不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决

不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决,第1张

概述前言本文主要给大家介绍了关于不同版本中Pythonmatplotlib.pyplot.draw()界面绘制异常的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

前言

本文主要给大家介绍了关于不同版本中Python matplotlib.pyplot.draw()界面绘制异常的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

在 Ubuntu系统上进行如下配置:

$ sudo apt-get update$ sudo apt-get upgrade$ sudo apt-get install python-dev$ sudo apt-get install python-pip$ sudo pip install --upgrade pip$ sudo pip install --upgrade urllib3$ sudo pip install numpy$ sudo pip install matplotlib

之后执行如下测试代码:

import sysimport numpy as npimport matplotlib.pyplot as plt plt.ion()(fig,axis) = plt.subplots()bar_plot = axis.barh(0,8,linewidth = 0)bar_plot.color= '#ffff00'for i in range(20): axis.set_xlim(xmax = max(i + 1,10)) plt.draw() if sys.version_info < (3,0): raw_input("Press Enter to continue...")else: input("Press Enter to continue...")

上面的测试代码在 Ubuntu 14.04.5版本上是可以正常执行的,对应的 matplotlib的版本是 matplotlib 1.3.1,但是放到 Ubuntu 16.04.2系统上则是无法正常显示的,对应的 matplotlib的版本是 matplotlib 1.5.1。

造成这个问题的原因在于 @H_404_27@matplotlib.pyplot.draw() ,这个函数行为的改变,早期这个函数是同步更新界面的,后来的版本却变成了空闲异步更新界面,只有当 @H_404_27@matplotlib.pyplot.pause(interval)被调用的时候才会刷新界面。

所以只需要上面的代码修改成如下即可在不同版本之间兼容:

import sysimport numpy as npimport matplotlib.pyplot as plt plt.ion()(fig,10)) plt.draw() plt.pause(0.00001) if sys.version_info < (3,0): raw_input("Press Enter to continue...")else: input("Press Enter to continue...")

注意:我们在 @H_404_27@matplotlib.pyplot.draw()调用后面增加了 @H_404_27@matplotlib.pyplot.pause(interval)的调用。

查看 matplotlib的版本使用如下代码:

import matplotlib as mplprint mpl.__version__

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。

参考链接

real-time plotting in while loop with matplotlib matplotlib Troubleshooting How to know the version of installed pylab? 总结

以上是内存溢出为你收集整理的不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决全部内容,希望文章能够帮你解决不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1201547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存