lil*_*ily 6 python matlab matplotlib figure
使用python matplotlib模块,我们可以使用pylab.savefig()函数来保存数字.但是,似乎此函数不能用于以.fig格式保存数字..fig格式是matlab图形格式.
使用.fig格式,我们可以调整/修改数字,这就是我想将数字保存为.fig格式的原因.
那么有没有办法用python matplotlib以.fig格式保存数字?
小智 6
您可以像这样将数字腌制到磁盘
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,open('sinus.pickle','wb'))
Run Code Online (Sandbox Code Playgroud)
然后从磁盘加载它并显示:
fig_object = pickle.load(open('sinus.pickle','rb'))
fig_object.show()
Run Code Online (Sandbox Code Playgroud)
MATLAB .fig 文件只不过是一个 MAT 文件,其中包含图中的每个句柄图形对象,以及它们的所有属性。MATLAB 句柄图形对象是类对象,其类型决定要绘制的图形,其属性决定如何绘制图形。
\n例如,线图将有一个图形对象,其中包含一个轴对象,又包含一个线对象。线条对象将具有包含绘制数据的属性xdata。ydata但这些对象中的每一个都有很多很多需要设置的属性。例如,线条还具有颜色和宽度属性、要使用哪些标记以及如何绘制这些标记等。
我们可以使用 Python 在 Python 中编写 MAT 文件scipy.io.savemat。但生成要保存的数据将是一项艰巨的工作。我们必须获取图中要保存的每个 Matplotlib 对象(它们具有与 MATLAB\xe2\x80\x99s 类似的层次结构),并将它们的属性转换为 MATLAB 在对象中表示它们的方式。这将涉及对每种图形对象类型的研究,因为它们都具有一组不同的属性。
编写一个函数来从 Matplotlib 绘图创建 .fig 文件是可能的,但在我看来不值得付出努力。保存数据并将生成绘图的 Python 脚本转换为 MATLAB 脚本以在 MATLAB 中生成等效绘图会更容易。
\n我从未找到一种使用 .fig 格式输出图形的方法,但一种替代方法是将绘图输出为封装的后脚本 (eps)。这样可以在事后使用 adobe illustrator 等程序对各个绘图元素进行操作。
import matplotlib.pyplot as plt
.
.
.
plt.savefig("MyFigure.eps", format="eps")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2610 次 |
| 最近记录: |