使用Python的matplotlib模块,可以使用pylab.savefig()函数保存图形。然而,该函数似乎不能用于将图形保存为.fig格式。.fig格式是matlab图形格式。
.fig格式可以调整/修改图形,这就是我想要将图形保存为.fig格式的原因。
那么,有没有办法使用Python的matplotlib保存图形为.fig格式呢?
使用Python的matplotlib模块,可以使用pylab.savefig()函数保存图形。然而,该函数似乎不能用于将图形保存为.fig格式。.fig格式是matlab图形格式。
.fig格式可以调整/修改图形,这就是我想要将图形保存为.fig格式的原因。
那么,有没有办法使用Python的matplotlib保存图形为.fig格式呢?
您可以像这样将图形pickle到磁盘上
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'))
然后从磁盘上加载并显示:
fig_object = pickle.load(open('sinus.pickle','rb'))
fig_object.show()
scipy.io.savemat
在Python中编写MAT文件。但生成要保存的数据将是很多工作。我们必须获取我们希望保存的图形中的每个Matplotlib对象(它们与MATLAB具有类似的层次结构),并将它们的属性转换为MATLAB在其对象中表示它们的方式。这将涉及到每种图形对象类型的研究,因为它们都有不同的属性集。z_data.values
只是一个numpy ndarray,因此您可以使用相同的代码来绘制和保存自己的数据,无需使用pandas。import plotly.graph_objects as go
import pandas as pd
z_data=pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/api_docs/mt_bruno_elevation.csv')
fig = go.Figure(data=[go.Surface(z=z_data.values)])
fig.update_layout(title='Mt Bruno Elevation', autosize=False,
width=500, height=500,
margin=dict(l=65, r=50, b=65, t=90))
fig.show()
fig.write_html("testfile.html")
我从未找到一种使用.fig格式输出图形的方法,但有一个替代方案是将您的绘图作为encapsulated post-scripts (eps)输出。这样可以在事后使用像Adobe Illustrator这样的程序对各个绘图元素进行操作。
import matplotlib.pyplot as plt
.
.
.
plt.savefig("MyFigure.eps", format="eps")