不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
2017-09-24 11:42
1026 查看
本文主要给大家介绍了关于不同版本中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 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。
造成这个问题的原因在于
matplotlib.pyplot.draw(),这个函数行为的改变,早期这个函数是同步更新界面的,后来的版本却变成了空闲异步更新界面,只有当
matplotlib.pyplot.pause(interval)被调用的时候才会刷新界面。
所以只需要上面的代码修改成如下即可在不同版本之间兼容:
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...")
注意:我们在
matplotlib.pyplot.draw()调用后面增加了
matplotlib.pyplot.pause(interval)的调用。
查看 matplotlib的版本使用如下代码:
import matplotlib as mpl print mpl.__version__
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。
参考链接
- real-time plotting in while loop with matplotlib
- matplotlib Troubleshooting
- How to know the version of installed pylab?
您可能感兴趣的文章:
- python绘图库Matplotlib的安装
- Python使用matplotlib绘制动画的方法
- Python中的Matplotlib模块入门教程
- python的绘图工具matplotlib使用实例
- Windows下为Python安装Matplotlib模块
- Python Matplotlib库入门指南
- python使用matplotlib绘制折线图教程
- python使用matplotlib绘制柱状图教程
- 在Linux下使用Python的matplotlib绘制数据图的教程
- Python使用matplotlib实现在坐标系中画一个矩形的方法
- Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
相关文章推荐
- python 1: 解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题
- 解决Windows系统下python利用matplotlib绘图时中文乱码的问题
- [完]Python,解决Matplotlib制图时的中文问题
- [完]Python 安装setuptools,解决使用Matplotlib遇到的问题
- 解决matplotlib绘制图片时中文无法正常显示的问题
- Linux下python matplotlib.pyplot在图像上显示中文的问题
- python matplotlib安装问题解决方案
- macOSX中使用python matplotlib模块的问题解决
- Windows7下Python安装Numpy、Matplotlib以及Scipy时出现的问题以及解决办法
- 解决windows下 Python中 matplotlib 做图中文不显示的问题
- 关于import matplotlib.pyplot as plt报错问题的解决方法
- 解决matplotlib.pyplot.show()函数不起作用的问题
- 机器学习实战python版本matplotlib安装遇到的各种问题和代码演示
- 解决python27 matplotlib 中文不显示问题
- python使用matplotlib绘图时图例显示问题的解决
- 【Python开发】matplotlib绘图不显示问题解决plt.show()
- Python——解决Matplotlib安装问题
- Python学习-centos7.0下matplotlib安装及问题解决
- python: 使用matplotlib的pyplot绘制图表
- 【Python开发】matplotlib绘图不显示问题解决plt.show()