我使用的是Python 2.7,错误源于下面几行:
fig.canvas.draw() img = np.array(fig.canvas.renderer._renderer)
我已经尝试了所有其他的解决方案,从将后端更改为WXAgg或GTKAgg,并显式地包括matplotlib.use(“WXAgg”),它仍然不起作用。我也在Fedora上运行。有什么建议吗?谢谢
1yjd4xko1#
只需转到文件-〉设置-〉工具-〉Python科学取消选中该项目。祝你好运
9w11ddsr2#
为了回答你的问题,我开了一个账户。这里有一个快速而肮脏的解决办法:将FigureCanvasAgg.draw(self) to draw()方法插入%PycharmInstallDir%\helpers\pycharm_matplotlib_backend\backend_interagg.py中的FigureCanvasInterAgg(FigureCanvasAgg)类我把它插入到我使用的版本的第92行。虽然没有必要,但我建议在修改之前备份backend_interagg.py文件。我的系统上的文件是只读的,所以要修改它,你可能需要把它复制到其他地方,添加这一行,然后复制回来,用管理员权限覆盖它。正如ImportanceOfBeingErnest所说,这是一个PyCharm问题:helper函数作者覆盖了FigureCanvasAgg类的draw()方法,而没有维护其预期功能。
FigureCanvasAgg.draw(self)
%PycharmInstallDir%\helpers\pycharm_matplotlib_backend\backend_interagg.py
FigureCanvasInterAgg(FigureCanvasAgg)
4ioopgfo3#
plt.gcf().canvas.get_renderer() fig.show()
它对我的Qt5Agg后端和PyCharm IDE很有效。
3条答案
按热度按时间1yjd4xko1#
只需转到文件-〉设置-〉工具-〉Python科学取消选中该项目。祝你好运
9w11ddsr2#
为了回答你的问题,我开了一个账户。这里有一个快速而肮脏的解决办法:
将
FigureCanvasAgg.draw(self)
to draw()方法插入%PycharmInstallDir%\helpers\pycharm_matplotlib_backend\backend_interagg.py
中的FigureCanvasInterAgg(FigureCanvasAgg)
类我把它插入到我使用的版本的第92行。虽然没有必要,但我建议在修改之前备份backend_interagg.py文件。我的系统上的文件是只读的,所以要修改它,你可能需要把它复制到其他地方,添加这一行,然后复制回来,用管理员权限覆盖它。
正如ImportanceOfBeingErnest所说,这是一个PyCharm问题:helper函数作者覆盖了FigureCanvasAgg类的draw()方法,而没有维护其预期功能。
4ioopgfo3#
它对我的Qt5Agg后端和PyCharm IDE很有效。