我使用的是 Python 2.7,错误源自以下几行:
fig.canvas.draw()
img = np.array(fig.canvas.renderer._renderer)
我已经尝试了所有其他解决方案,从将后端更改为 WXAgg 或 GTKAgg 并显式包含 matplotlib.use("WXAgg") ,但它仍然不起作用。
我也在 Fedora 上运行。
有什么建议吗?谢谢
只需转到文件 -> 设置 -> 工具 -> Python Scientific 取消选中该项目即可。 祝你好运
创建我的帐户只是为了回答您的问题。这是一个快速但肮脏的修复:
将
FigureCanvasAgg.draw(self)
插入到 FigureCanvasInterAgg(FigureCanvasAgg)
中的类
%PycharmInstallDir%\helpers\pycharm_matplotlib_backend\backend_interagg.py
的 draw() 方法
我将其插入到我使用的版本的第92行。虽然没有必要,但我建议在修改之前备份 backend_interagg.py 文件。 我系统上的文件是只读的,因此要修改它,您可能必须将其复制到其他地方,添加此行,然后将其复制回来并使用管理员权限覆盖。
正如 ImportanceOfBeingErnest 所说,这是一个 PyCharm 问题:辅助函数作者重写了FigureCanvasAgg 类的 draw() 方法,而没有维护其预期功能。
plt.gcf().canvas.get_renderer()
fig.show()
它对我来说适用于 Qt5Agg 后端和 PyCharm IDE。
或者只是这样:
%matplotlib inline
如果您使用的是 Jupyter Notebook。 我不知道有多少次我忘记添加这一点了。 但在某些情况下,它会给出“渲染器”错误,而不是通常的不执行任何操作的结果。