我正在尝试在matplotlib中显示图像的x、y、z坐标。 示例代码 在全局python安装上运行得非常好:当我移动光标时,x、y、z值会立即更新。然而,当我在python虚拟环境中运行示例代码时,我需要多次单击图像才能显示坐标,然后当我单击不同位置时,它只会更新一些。几次单击后,坐标将不再更新。
我不知道如何调试这个问题。
我不知道如何调试这个问题。
pyqt
以使用我在此建议的qt4agg
后端。wx
、qt4
等),也可以是文件输出(例如pdf
)。它们分别称为交互和非交互式后端。import matplotlib
matplotlib.use('qt4agg')
在编程中,如果您想要更改每次启动matplotlib的设置,可以通过编辑您的matplotlibrc文件来设置后端属性,例如编辑您的matplotlibrc文件。
backend: Qt4Agg
注意:有评论提醒我,自从发布这个答案后,matplotlib文档现在提到了这个问题并 建议一种解决方法。不过评论者指出,在官方文档的解决方法对他们无效时,本答案提供的解决方法(切换到Qt后端)对他们有效。
matplotlibrc
文件,其中包含指令:backend: TkAgg
。# Within working directory where running python
vim matplotlibrc
# new file via vim, Nano, whatever
backend: TkAgg
这个很有用:
import matplotlib
print matplotlib.rcParams['backend']
我还使用Homebrew安装了pyqt (brew install pyqt
),并将其从/usr/local/lib/python2.7/site-packages/PyQt4
复制(也可以移动)到$MyVirtEnv/lib/python2.7/site-packages/
中。
但是当我...
import matplotlib
matplotlib.use('qt4Agg')
import librosa
"Matplotlib qt-based backends require an external PyQt4, PyQt5,\n"
ImportError: Matplotlib qt-based backends require an external PyQt4, PyQt5,
or PySide package to be installed, but it was not found.
我也尝试过
pip install pyside
Successfully installed pyside-1.2.4
同样的错误
>>> import pyside
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pyside
在尝试重新导入matplotlib时,我也遇到了以下错误(我想是这个原因)。
from . import cache
ImportError: cannot import name cache
vext
是解决方案。pip3 install vext.pyqt5
pip freeze
命令并进行比较。同时查看Python版本是否相同。也有可能是Matplotlib使用了不同的后端,因此还要检查matplotlib.get_backend()
命令。 - swenzel