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)
小智 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)