爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 6223|回复: 5

[经验总结] 实测:pickle并不能保存plt对象

[复制链接]

新浪微博达人勋

发表于 2022-6-29 22:27:45 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
今晚突发奇想,如果pickle能保存plt对象,将带来不少便捷,于是试了一下:

import
matplotlib.pyplot as plt

import pickle

plt.plot([1,2,1,2])

fp=open('plt.pkl','wb')
pickle.dump(plt,fp)
fp.close()

# 报错:
# TypeError: cannot pickle 'module' object


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2022-7-2 18:18:45 | 显示全部楼层
plt是模块不能保存,可以保存的是fig或者ax,这两个才是对象
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-7-3 16:59:43 | 显示全部楼层
a = plt.plot([1,2,1,2]
fp=open(a,'wb')
pickle.dump(plt,fp)
fp.close()
试一下这个,python万物皆可为对象
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-7-4 22:31:58 | 显示全部楼层
1099221723 发表于 2022-7-2 18:18
plt是模块不能保存,可以保存的是fig或者ax,这两个才是对象

原来如此,感谢感谢!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-7-4 22:49:25 | 显示全部楼层
坎坷 发表于 2022-7-3 16:59
a = plt.plot([1,2,1,2]
fp=open(a,'wb')
pickle.dump(plt,fp)

大师,我试了没成功,您给瞧瞧?

引入包:
import pickle
import matplotlib.pyplot as plt

保存画图对象:

fig=plt.plot([1,2,1,2])
fp=open('data.pkl','wb')
pickle.dump(fig,fp)
fp.close()

读取pickle文件:

fp=open('data.pkl','rb')
fig=pickle.load(fp)
fp.close()

报错:

Traceback (most recent call last):
  File "c:\Users\xxx\Desktop\test.py", line 14, in <module>
    fig=pickle.load(fp)
  File "C:\python\lib\site-packages\matplotlib\figure.py", line 2911, in __setstate__
    mgr = plt._backend_mod.new_figure_manager_given_figure(num, self)
AttributeError: 'NoneType' object has no attribute 'new_figure_manager_given_figure'










密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-7-5 11:16:15 | 显示全部楼层
本帖最后由 1099221723 于 2022-7-5 11:24 编辑
15195775117 发表于 2022-7-4 22:49
大师,我试了没成功,您给瞧瞧?

引入包:

在载入pkl前 先执行一下  fig = plt.figure() 也可以 plt.switch_backend("Qt5Agg") Qt5Agg具体用什么,看配置
后面,再重新读取fig,没有保存fig的话,可以fig = ax.figure
fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(111)fig和ax是类似这样的




密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表