如何解决pylab.pause引发的弃用警告?

15 投票
3 回答
9907 浏览
提问于 2025-04-18 01:25

下面是一个简单的Python程序,用来展示我一直遇到的一个问题:

import pylab
pylab.ion()
pylab.title('doom')
pylab.pause(0)

如果我运行这个程序,它能正常工作,但我会收到一个警告:

/usr/lib/pymodules/python2.7/matplotlib/backend_bases.py:2280: MatplotlibDeprecationWarning: Using default event loop until function specific to this GUI is implemented

如果我把暂停的那一行去掉,虽然就不会有警告了,但我的图表在程序结束后就消失了。

我希望能找到一个优雅的方法,既能实现我想要的效果,又不会有警告。有没有人能帮帮我?

3 个回答

1

看起来 waitforbuttonpress 这个功能可以满足你的需求。只需要把 pause 替换成 pylab.waitforbuttonpress(timeout=-1) 就可以了。

3

使用 warnings 模块。

https://pymotw.com/2/warnings/

import warnings
..
..
warnings.filterwarnings("ignore",".*GUI is implemented.*")

这个功能会在发出警告时,查找内容中是否有“Gui is implemented”这个模式,如果有的话就会忽略这个警告,但其他的警告还是会被报告出来。

1

看起来这个问题已经在 matplotlib 中修复了,所以更新这个库应该就能解决问题。

pip install --upgrade matplotlib

撰写回答