是否有与 .fig
等效的 Python 语言来自 Matlab 的文件?我正在寻找从 Python 保存图形的能力,同时也可以稍后从保存的图形中提取数据,并在需要时修改图形。
最佳答案
不,Matplotlib 没有原生图形文件。 API方法savefig()
仅支持渲染各种图像文件格式的图形。
如果您需要将图形保存到文件并稍后恢复它,您可以使用pickle
来自标准库的模块。它允许您将图形对象(或实际上任何 Python 对象)的二进制表示形式转储到文件中。然后,您可以“unpickle”文件中的数据(可能在不同的 Python session 中),以恢复原始图形对象。 Matplotlib 文档中没有提到 Pickling 和 unpickling,但似乎得到了非官方支持,因为 Matplotlib GitHub 存储库中的许多问题证明了这一点,例如 #10843和 #17201 .
将(示例)图形保存到名为 figure.mpl
的文件中:
from matplotlib import pyplot
figure = pyplot.figure()
axes = figure.add_subplot()
axes.plot([0, 0], [1, 1])
import pickle
file = open('figure.mpl', 'wb')
pickle.dump(figure, file)
请注意,代码不会调用 pyplot.show()
。在这样的调用之后保存图形将会失败,因为它不再由 Matplotlib 主动管理。
要从之前保存的文件中加载图形:
import pickle
file = open('figure.mpl', 'rb')
figure = pickle.load(file)
figure.show()
关于来自 Matlab 的 .fig 文件的 Python 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67538039/