现象:Matplotlib 3.5以前的版本运行时,结果将显示在PyCharm工具窗口(tool window)中,能正确地运行。但是,Matplotlib 3.8在运行时,将出现以上错误。

        方案1(简单,但是每个代码文件中都要添加matplotlib.use(“TkAgg”)):在每个Matplotlib代码文件中添加:

Import matplotlib

matplotlib.usr(“TkAgg”)

        方案2(简单并且一次性解决所有Matplot代码运行的问题,但改变了输出方式): 打开Pycharm --> File --> settings  --> Tools --> Python Scientific界面 --> 将界面中“Show plots in tool window”复选项中的“√”去掉即可。每次运行的绘图结果将单独弹出一个绘图窗口。

        方案3(尝试了修改3处matplotlibrc文件的配置,三处分别为:当前工程的venv目录下、 Matplotlib3.5目录下、Anaconda的Matplotlib当前版3.8版路径下,问题还是没有解决):查找并修改配置文件matplotlibrc中的backend的设置,默认为注释状态即未启用本设置。去掉注释,启用设置为:backend:TkAgg。

        进一步发现:修改Anaconda下当前版本Matplotlib 3.8路径下的backend的配置是起作用的,启用backend设置为TkAgg时,本问题还是没有解决,但不影响方案2的运行。但是,当启用了backend设置为Agg时,不仅本问题没有解决,还导致方案2不能运行;当启用backend设置为QtAgg时,本问题还是没有解决,导致方案2运行时提示错误信息:当前Matplotlib 3.8要求Qt版本为更高的版本,需要更新Qt安装包的版本;这说明matplotlibrc配置文件还是有作用的,但是解决了本问题。

        方案4(预估成功可能性不大就没有尝试):网上还有说用如下方法的。将所报错处的py代码文件"C:\Anaconda3\lib\site-packages\matplotlib\pyplot.py"中的'FigureCanvas’全部改为'FigureCanvasAgg’(经搜索发现共10处)。

Logo

鸿蒙生态一站式服务平台。

更多推荐