存储并重新加载matplotlib.pyplot对象

Vor*_*ity 42 python matplotlib

我在一个psudo-operational环境中工作,我们在接收数据时创建新的图像.有时,当新数据进入时,我们需要重新打开图像并更新该图像以创建合成图像,添加叠加层等.除了添加图像之外,还需要修改标题,图例等.

matplotlib中是否有内容可以让我存储和重新加载我的matplotlib.pyplot对象供以后使用?它需要保持对所有相关对象的访问,包括数字,线条,图例等.也许泡菜是我正在寻找的,但我对此表示怀疑.

pel*_*son 50

截至1.2 matplotlib船舶具有实验酸洗支持.如果您遇到任何问题,请通过mpl邮件列表或在github.com/matplotlib/matplotlib上打开一个问题告诉我们.

HTH

编辑:添加了一个简单的例子

import matplotlib.pyplot as plt
import numpy as np
import pickle

ax = plt.subplot(111)
x = np.linspace(0, 10)
y = np.exp(x)
plt.plot(x, y)
pickle.dump(ax, file('myplot.pickle', 'w'))
Run Code Online (Sandbox Code Playgroud)

然后在一个单独的会话中:

import matplotlib.pyplot as plt
import pickle

ax = pickle.load(file('myplot.pickle'))
plt.show()
Run Code Online (Sandbox Code Playgroud)

  • 我在使用 matplotlib 进行酸洗时遇到问题。有没有示例代码展示如何使用它? (2认同)
  • 为了重新显示保存的图形,我发现按照 [this answer](/sf/ask/2221096391/ -been-closed)帮助使人物恢复生机。 (2认同)

小智 11

Pelson对Jupyterhub工作人员的回答的一个小修改

%matplotlib notebook在装入泡菜之前使用.%matplotlib inline在jupyterhub或jupyter笔记本中使用对我不起作用.并给出以AttributeError结尾的回溯:'module'对象没有属性'new_figure_manager_given_figure'.

import matplotlib.pyplot as plt
import numpy as np
import pickle

%matplotlib notebook

ax = plt.subplot(111)
x = np.linspace(0, 10)
y = np.exp(x)
plt.plot(x, y)
with open('myplot.pkl','wb') as fid:
    pickle.dump(ax, fid)
Run Code Online (Sandbox Code Playgroud)

然后在一个单独的会话中:

import matplotlib.pyplot as plt
import pickle

%matplotlib notebook

with open('myplot.pkl','rb') as fid:
    ax = pickle.load(fid)
plt.show()
Run Code Online (Sandbox Code Playgroud)