gpt4 book ai didi

python - 尝试加载腌制的 matplotlib 图时出现 AttributeError

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:54 28 4
gpt4 key购买 nike

我使用pickle 转储matplotlib 图,如an answer in SO 所示。 .下面是代码片段-

import pickle
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1,2,3],[10,-10,30])
pickle.dump(fig, open('fig.pickle', 'wb'))

下面是加载腌制图形的代码片段-

import pickle
figx = pickle.load(open('fig.pickle', 'rb'))
figx.show()

上面的代码显示如下错误-

AttributeError: 'NoneType' object has no attribute 'manager'
Figure.show works only for figures managed by pyplot, normally created by pyplot.figure().

我在 Ubuntu 14.04 LTS 64 位操作系统上使用 Python 3.6.3。以下是我的环境的更多详细信息-

> import matplotlib
> matplotlib.__version__
'2.1.0'
> matplotlib.get_backend()
'Qt5Agg'
> import sys
> sys.version_info
sys.version_info(major=3, minor=6, micro=3, releaselevel='final', serial=0)

PS:我的问题似乎类似于 this question asked at SO .但是,它是不同的,因为提供的答案不是运行并抛出异常。

最佳答案

您需要 Canvas 管理器才能展示您的身材。来自问题 Matplotlib: how to show a figure that has been closed 的相同概念适用,您可以创建一个函数来制作一个虚拟人物并窃取其经理,如下所示(感谢 Jean-Sébastien,他写了上面的答案)。

def show_figure(fig):

# create a dummy figure and use its
# manager to display "fig"
dummy = plt.figure()
new_manager = dummy.canvas.manager
new_manager.canvas.figure = fig
fig.set_canvas(new_manager.canvas)

使用这个函数你可以运行:

show_figure(figx)
figx.show()

关于python - 尝试加载腌制的 matplotlib 图时出现 AttributeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49503869/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com