【问题标题】:Matplotlib save file to be reedited later in ipythonMatplotlib 保存文件稍后在 ipython 中重新编辑
【发布时间】:2015-05-23 11:41:51
【问题描述】:

有没有办法保存 matplotlib 图形的“状态”,以便我以后可以打开绘图并与之交互,例如在新的 ipython 笔记本会话中。

如果您想稍后编辑图形,则绘制 pdf 和其他文件格式并不完全正确。

如果您想稍后注释或重新调整图形,这将很有用,但您不一定拥有对生成图形的原始脚本/数据的所有访问权限。

在 matlab 中,据报道 ipython 经常尝试以多种方式进行模拟,您可以简单地将文件保存为 .fig 甚至是脚本,例如 .m (matlab) 文件!然后在稍后的 matlab 会话中重新打开 .m.fig 并进行编辑。

这可以用 matplotlib 完成吗?

【问题讨论】:

标签: python matlab matplotlib


【解决方案1】:

您可以像这样将图形腌制到磁盘

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

# Plot
fig_object = plt.figure()
x = np.linspace(0,3*np.pi)
y = np.sin(x)
plt.plot(x,y)
# Save to disk
pickle.dump(fig_object,file('sinus.pickle','w'))

然后从磁盘加载并显示:

fig_object = pickle.load(open('sinus.pickle','rb'))
fig_object.show()

【讨论】:

  • 要清楚。 fig_object 到底是什么。这就是你做的时候得到的吗fig_object= plt.plot(x,y)
  • Uhmm...fig_object 不应该是一个图形实例吗? plot 返回一个列表,因此 fig_object.show() 将失败。使用fig_object = plt.gcf()
  • 更新了我的答案,所以它有更多关于 fig_object 的细节
  • 保存到磁盘的部分应该看起来更像pickle.dump(fig_object, open('sinus.pickle','wb'))。由于Suggested edit queue is full,无法建议编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 2021-12-02
  • 2016-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多