我使用的是Python 2.7,错误源自以下几行:
fig.canvas.draw()
img = np.array(fig.canvas.renderer._renderer)
我尝试了所有其他解决方案,包括将后端更改为WXAgg或GTKAgg,并明确包含matplotlib.use(“ WXAgg”),但仍然无法正常工作。
我也在Fedora上运行。
有什么建议吗?谢谢
答案 0 :(得分:1)
设为我的帐户只是为了回答您的问题。这是一个快速而肮脏的修复程序:
将FigureCanvasAgg.draw(self)
的draw()方法插入FigureCanvasInterAgg(FigureCanvasAgg)
中的类%PycharmInstallDir%\helpers\pycharm_matplotlib_backend\backend_interagg.py
我将其插入到我使用的版本的第92行。尽管不是必需的,但我建议在修改之前备份backend_interagg.py文件。 我系统上的文件是只读文件,因此要对其进行修改,您可能必须将其复制到其他地方,添加此行,然后再复制回去并以管理员权限覆盖。
正如ImportanceOfBeingErnest所说的,这是一个PyCharm问题:辅助函数作者覆盖了FigureCanvasAgg类的draw()方法,而没有保持其预期的功能。
答案 1 :(得分:0)
plt.gcf().canvas.get_renderer()
fig.show()
它与Qt5Agg后端和PyCharm IDE配合使用。