源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-08-20 16:57 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
[b]前言[/b] 本文主要给大家介绍了关于不同版本中Python matplotlib.pyplot.draw()界面绘制异常的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 [b]在 Ubuntu系统上进行如下配置:[/b]
$ 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
[b]之后执行如下测试代码:[/b]
import sys
import numpy as np
import 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。 造成这个问题的原因在于 [code]matplotlib.pyplot.draw() [/code],这个函数行为的改变,早期这个函数是同步更新界面的,后来的版本却变成了空闲异步更新界面,只有当 [code]matplotlib.pyplot.pause(interval)[/code]被调用的时候才会刷新界面。 [b]所以只需要上面的代码修改成如下即可在不同版本之间兼容:[/b]
import sys
import numpy as np
import 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...")
[b]注意:[/b]我们在 [code]matplotlib.pyplot.draw()[/code]调用后面增加了 [code]matplotlib.pyplot.pause(interval)[/code]的调用。 查看 matplotlib的版本使用如下代码:
import matplotlib as mpl
print mpl.__version__
[b]总结[/b] 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程素材网的支持。 [b]参考链接[/b] [list] [*][url=https://stackoverflow.com/questions/11874767/real-time-plotting-in-while-loop-with-matplotlib]real-time plotting in while loop with matplotlib[/url][/*] [*][url=http://matplotlib.org/faq/troubleshooting_faq.html]matplotlib Troubleshooting[/url][/*] [*][url=https://stackoverflow.com/questions/22762458/how-to-know-the-version-of-installed-pylab]How to know the version of installed pylab?[/url][/*] [/list]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部