不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
Python  /  管理员 发布于 7年前   400
前言
本文主要给大家介绍了关于不同版本中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。
造成这个问题的原因在于 matplotlib.pyplot.draw()
,这个函数行为的改变,早期这个函数是同步更新界面的,后来的版本却变成了空闲异步更新界面,只有当 matplotlib.pyplot.pause(interval)
被调用的时候才会刷新界面。
所以只需要上面的代码修改成如下即可在不同版本之间兼容:
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() plt.pause(0.00001) if sys.version_info < (3, 0): raw_input("Press Enter to continue...")else: input("Press Enter to continue...")
注意:我们在 matplotlib.pyplot.draw()
调用后面增加了 matplotlib.pyplot.pause(interval)
的调用。
查看 matplotlib的版本使用如下代码:
import matplotlib as mplprint mpl.__version__
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家的支持。
参考链接
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号