在 PyCharm Professional 中绘图时 Mplot3D 绘图冻结

1 matplotlib pycharm mplot3d

最近,当我在 PyCharm 中做 MatPlotLib 3D 绘图时,执行 plt.show() 命令时调试和绘图窗口冻结。在情节的顶部栏中提到了(未响应)。PyCharm Community Edition 2019 和 PyCharm Professional 2021 中都会发生这种情况。我运行的是 Python v3.8。如果我执行 plt.show(Block=True),交互式 3D 绘图将会出现,但我需要关闭图形才能继续调试。

有谁知道如何使用 plt.show() 绘制图形,启动交互式窗口,并在交互式窗口打开的情况下继续调试?这在我之前版本的 Python v3.7 中是有效的,但最近升级到 v3.8 时出现了问题。

Ben*_* JW 10

我最近在使用 matplotlib 绘图时遇到了同样的问题。这似乎与 matplotlib 用于选择其默认后端的优先顺序的更改有关。根据matplotlibrc与Python包捆绑的文件,以前的顺序是

MacOSX Qt5Agg Gtk3Agg TkAgg WxAgg Agg

在以前的版本(例如,v3.4.2)中,而在更新的版本(例如,v3.5.0)中,它已更改为

MacOSX QtAgg Gtk4Agg Gtk3Agg TkAgg WxAgg Agg

Qt5Agg对我来说,在 Python 中导入 matplotlib 之后将后端设置为正确

import matplotlib
matplotlib.use("Qt5Agg")
Run Code Online (Sandbox Code Playgroud)

确实解决了“不响应”问题。或者,我们可以通过环境变量来指定它MPLBACKEND=Qt5Agg。很可能,我们还可以通过修改捆绑文件或提供我们自己的文件Qt5Agg来设置为默认后端。matplotlibrcmatplotlibrc

PS:不确定阻止QtAgg后端正常工作的核心问题是否在 PyCharm、matplotlib 或 PyQt 中......