如何将 matplotlib 中的默认后端从 'QtAgg' 更改为 Pycharm 中的 'Qt5Agg'?

How to change the default backend in matplotlib from 'QtAgg' to 'Qt5Agg' in Pycharm?

Qt5Agg 是使用 mayavi 3D 可视化包所必需的。我已经在单独复制的 conda 环境中使用 pip 安装了 PyQt5mayavi。然后默认后端从 TkAgg 更改为 QtAgg。这有点奇怪,因为在另一台 PC 上的早期安装中,默认值直接更改为 Qt5Agg。我总是从 python 控制台使用以下命令检查后端:

import matplotlib 
matplotlib.get_backend()

即使后端是 'QtAgg',我也可以从终端使用 mayavi 而不会出现任何问题,但在 Pycharm 中这样做时就不行了。在这里,我得到一个无响应的空 window(下图):

Image of the non-responsive window

我已经能够通过在 plt 调用之前显式使用 Qt5Agg 而不是 QtAgg 来解决这个问题:

import matplotlib
matplotlib.use('Qt5Agg')
import matplotlib.pyplot as plt

但我更喜欢一种比在我编写的每个脚本中都使用上述方法更好的方法。正如我之前提到的,我已经安装了 mayavi 并在另一台 PC 的 Pycharm 中成功使用了它,默认后端是 'Qt5Agg',因此无需显式更改后端。

有什么明显的我忽略了吗?在使用 pip 安装 PyQt5 之后,您能否告诉我一种将 matplotlib 的默认后端从 QtAgg 更改为 Qt5Agg 的方法?

提前致谢!!

感谢@PaulH 的评论,我得以解决问题。由于@mx0的建议,我现在将在下面明确提及修复,以便其他人也可以从中受益。

在特定的 conda 环境中,如果安装了 matplotlib 软件包,那么将在某处存储一个 'matplotlibrc' 文件,该文件定义了每当导入 matplotlib 时的默认后端。来自那个conda环境。可以使用以下命令找到此 'matplotlibrc' 的位置:

import matplotlib
matplotlib.matplotlib_fname()

如果上述命令存在任何弃用问题,请查看以下 link:

https://matplotlib.org/stable/tutorials/introductory/customizing.html#customizing-with-matplotlibrc-files

一旦知道 'matplotlibrc' 文件的位置,打开它并简单地取消注释该文件中的一行。只需将后端从 :

##backend: Agg

至:

backend: Qt5Agg

就是这样。 window所有PyCharm的剧情问题都将在mayavi3D可视化包中得到解决。对于需要特定后端的任何其他用途,您还可以将默认设置设置为任何其他选择的后端。