有没有办法将matplotlib中的“图形”保存到一个文件中,这样如果您以后想修改图形,例如更改数据点、调整图形大小等,您可以在新的python脚本中加载该文件并执行此操作?
现在我将我的大部分绘图保存为Pdfs,但这不允许我以后进行编辑。我得去找出我的旧源代码和数据文件。我已经忘记了丢失绘图生成代码的次数,必须从零开始重新生成它。
如果我能把一个绘图保存为一个独立的数据文件就好了,就像Photoshop处理它的.psd文件一样,这样我就可以直接加载它,输入"object.plot()",而不必担心外部依赖。这样的格式存在吗?如果不存在,我有什么方法可以实现这一点吗?
发布于 2020-03-12 11:04:18
有一种保存打印对象的方法,称为酸洗。我没有太多的经验,但它应该允许您将绘图保存到一个文件使用
fig = plt.figure
pl.dump(fig, file('file_name.pickle','w'))
并使用
fig = pl.load(open('file_name.pickle','rb'))
fig.show()
要加载保存的图形,请执行以下操作。
Matplotlib警告说,"Pickle文件不是为长期存储而设计的,在恢复保存在另一个matplotlib版本中的pickle时不受支持“。为了安全起见,我只需将包含要绘制的数据的数组保存到.csv或.txt文件中,并将该文件与用于绘制图形的python文件放在一个文件夹中。这样,您将始终能够绘制您的数据(无论您使用的matplotlib版本是什么)。您还可以将数据和代码放在同一位置,并且可以轻松地从.csv或.txt文件中读取数据,将其保存到数组中,并使用
file = open("file_name.txt", "r")
if file.mode == 'r':
data = f.read().splitlines()
data_array1 = data[0].split(",")
data_array2 = data[1].split(",")
p, = plt.plot(data_array1, data_array2)
我还建议将python文件和.csv或.txt文件一起上传到Github。
如果你想阅读更多关于matplotlib中酸洗的内容,我建议你阅读下面链接的两个页面。(1) Pickle figures from matplotlib和(2) https://matplotlib.org/3.1.3/users/prev_whats_new/whats_new_1.2.html#figures-are-picklable
https://stackoverflow.com/questions/60646702
复制相似问题