我正在尝试在 matplotlib 中显示图像的 x y z 坐标。 the example code 在全局 python 安装上工作得很好:当我移动光标时,x、y、z 值会立即更新。但是,当我在 python 虚拟环境中运行示例代码时,我会多次单击图像以首先显示坐标,然后当我单击不同的位置时,它会更新一些。单击几下后,坐标将不再更新。

我不知道如何调试这个。

最佳答案

这很可能是 matplotlib 的 macosx 后端的问题。切换到使用 matplotlib 的替代后端(例如,使用 qt4 而不是 'macosx')。有关如何切换后端及其确切含义的详细信息 - 请参阅 the docs here 。请注意,您可能必须先安装后端 - 例如pyqt 使用 qt4agg 后端,正如我在这里建议的那样。

总之 - 后端处理来自 matplotlib 和 matplotlib 的输出可以针对不同的输出格式。这些可以是 gui 显示输出格式(例如 wxqt4 等)或文件输出(例如 pdf )。这些分别称为交互式和非交互式后端。

改变后端要么做

import matplotlib
matplotlib.use('qt4agg')

在代码中,或者 - 如果您想在每次启动 matplotlib 时进行更改 - edit your matplotlibrc file 设置后端属性,例如
backend: Qt4Agg

注意我收到一条评论提醒,自从发布这个答案后,matplotlib 文档现在提到了这个问题和 suggest a workaround ,尽管评论者指出这个答案中提供的解决方案(切换到 Qt 后端)对他们有用,而官方文档的解决方法是不可能的为他们。

关于python - matplotlib 示例代码不适用于 python 虚拟环境,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33100969/

10-16 10:33