不同版本中Python matplotlib.pyplot.draw()界面绘制异常问题的解决
作者:默默的点滴 时间:2021-04-23 03:41:16
前言
本文主要给大家介绍了关于不同版本中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?
来源:http://www.mobibrw.com/2017/8476
标签:python,matplotlib.pyplot.draw(),界面绘制异常
0
投稿
猜你喜欢
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2023-08-23 12:26:39
pytest conftest.py文件的使用讲解
2023-10-16 14:22:44
清空所有表中的数据的存储过程
2024-01-16 11:00:08
两行 JavaScript 代码
2010-08-31 14:57:00
oracle12C安装步骤(图文详解)
2023-07-15 14:19:34
Git的基本操作流程及工作区版本库暂存区的关系
2022-03-10 04:52:42
Python显示进度条的方法
2023-05-25 07:38:30
python opencv检测目标颜色的实例讲解
2021-09-02 01:05:33
python创建文件时去掉非法字符的方法
2023-10-12 02:15:51
python模块中判断全局变量的赋值的实例讲解
2021-01-05 13:29:37
Python 实现中值滤波、均值滤波的方法
2022-05-09 08:58:38
JSP实现客户信息管理系统
2023-06-30 05:32:36
python字符串和常用数据结构知识总结
2023-09-29 21:00:55
Python3监控疫情的完整代码
2023-09-24 09:53:19
centos上安装mysql并设置远程访问的操作方法
2024-01-14 15:24:28
Vue.js使用axios动态获取response里的data数据操作
2024-05-08 09:34:06
Python dict的常用方法示例代码
2023-05-17 09:58:15
Golang解析yaml文件操作指南
2024-05-09 14:51:59
Oracle to_char函数的使用方法
2024-01-19 01:47:37
Python pandas RFM模型应用实例详解
2023-10-15 23:27:34