我想保存和编辑matplotlib生成的图(不是图像文件,更喜欢可编辑的文件)。 我使用了pickle包,我可以通过以下代码保存并打开一个图。
#-------------
#save code
#-------------
import matplotlib.pyplot as plt
import numpy as np
import pickle
fig = plt.figure('exp_plot')
ax = fig.add_subplot(111)
ax.set_xlim(0, 10)
ax.set_xlabel("x")
ax.set_ylabel("y")
x = np.linspace(0, 10)
y = np.exp(x)
ax.plot(x, y)
pickle.dump(ax, file('exp_plot.pickle', 'wb'))
#-------------
#load code
#-------------
import matplotlib.pyplot as plt
import pickle
fig = pickle.load(open('exp_plot.pickle', 'rb'))
plt.show()
然而,我无法通过"图选项"来编辑绘图(例如,更改x轴范围,编辑绘图标题,更改线条样式)。图窗口的窗口。 当我尝试更改窗口上的x轴范围时,错误消息如下所示。
Traceback (most recent call last):
File "C:\Anaconda2\lib\site-packages\matplotlib\backends\qt_editor\formlayout.py", line 472, in apply
self.apply_callback(self.formwidget.get())
File "C:\Anaconda2\lib\site-packages\matplotlib\backends\qt_editor\figureoptions.py", line 124, in apply_callback
axes.set_yscale(yscale)
File "C:\Anaconda2\lib\site-packages\matplotlib\axes\_base.py", line 3096, in set_yscale
self.autoscale_view(scalex=False)
File "C:\Anaconda2\lib\site-packages\matplotlib\axes\_base.py", line 2198, in autoscale_view
self.set_ybound(y0, y1)
File "C:\Anaconda2\lib\site-packages\matplotlib\axes\_base.py", line 2964, in set_ybound
self.set_ylim(lower, upper, auto=None)
File "C:\Anaconda2\lib\site-packages\matplotlib\axes\_base.py", line 3055, in set_ylim
self.callbacks.process('ylim_changed', self)
File "C:\Anaconda2\lib\site-packages\matplotlib\cbook.py", line 559, in process
"""
AttributeError: 'CallbackRegistry' object has no attribute 'callbacks'
注意我可以通过代码编辑x轴范围和标题,但这对我来说不方便。 您是否知道如何通过"图选项"编辑已保存的图表?图窗口的窗口。
我在win32上使用Python 2.7.11,Anaconda 2.4.1(32位),matplotlib 1.5.1。