来自 Matlab 的 .fig 文件的 Python 等效项

标签 python matplotlib

是否有与 .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/

相关文章:

python - 无法从 Jupyter 笔记本中的 IPython.html.widgets 导入小部件

python - 如何在pyqt5中允许tab键按下事件

python - Spark - 使用 groupBy 减少组合数量

python - 从 pandas 数据框中绘制线条

python - 如何从数据库查询中删除列表中的嵌套列表?

python - 使用Numpy的readtxt读取十六进制数字

python - 从折线图中删除小数

python - Matplotlib:使 x 轴更长

python - 在 matplotlib 中移动轴文本

python - Matplotlib 中的平行坐标图