来自 matplotlib 的泡菜数字:2
Pickle figures from matplotlib: 2
在 之后,我正在尝试从 pickle 加载一个图形。我使用的是相同的代码,并进行了响应中建议的修改。
保存脚本:
import numpy as np
import matplotlib.pyplot as plt
import pickle as pl
# Plot simple sinus function
fig_handle = plt.figure()
x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y)
# plt.show()
# Save figure handle to disk
pl.dump(fig_handle,file('sinus.pickle','wb'))
加载脚本:
import matplotlib.pyplot as plt
import pickle as pl
import numpy as np
# Load figure from disk and display
fig_handle = pl.load(open('sinus.pickle', 'rb'))
fig_handle.show()
保存脚本生成一个名为"sinus.pickle"的文件,但加载文件没有显示预期的图形。有什么建议吗?
Python 2.7.13
matplotlib 2.0.0
麻木 1.12.1
p.s。按照建议将 fig_handle.show() 替换为 pat.show() 会产生错误:
回溯(最近调用最后):
File "/usr/local/lib/python2.7/
site-packages/matplotlib/backends/backend_macosx.py", line 109,
in_set_device_scale
self.figure.dpi = self.figure.dpi / self._device_scale * value
File "/usr/local/lib/python2.7/site-packages/matplotlib/figure.py",
line 416, in _set_dpi
self.callbacks.process('dpi_changed', self)
File "/usr/local/lib/python2.7/site-packages/matplotlib/cbook.py",
line 546, in process
if s in self.callbacks:
AttributeError: 'CallbackRegistry' object has no attribute 'callbacks'
你所谓的 "loading script" 没有任何意义。
根据您在问题中提供的 link,加载所选图形非常简单:
# Load figure from disk and display
fig_handle2 = pl.load(open('sinus.pickle','rb'))
fig_handle2.show()
最终解决方案包括修改
fig_handle.show()
到
plt.show()
根据 ImportanceOfBeingErnest
给出的建议,将后端修改为 "TkAgg"
在
import numpy as np
import matplotlib.pyplot as plt
import pickle as pl
# Plot simple sinus function
fig_handle = plt.figure()
x = np.linspace(0,2*np.pi)
y = np.sin(x)
plt.plot(x,y)
# plt.show()
# Save figure handle to disk
pl.dump(fig_handle,file('sinus.pickle','wb'))
加载脚本:
import matplotlib.pyplot as plt
import pickle as pl
import numpy as np
# Load figure from disk and display
fig_handle = pl.load(open('sinus.pickle', 'rb'))
fig_handle.show()
保存脚本生成一个名为"sinus.pickle"的文件,但加载文件没有显示预期的图形。有什么建议吗?
Python 2.7.13 matplotlib 2.0.0 麻木 1.12.1
p.s。按照建议将 fig_handle.show() 替换为 pat.show() 会产生错误: 回溯(最近调用最后):
File "/usr/local/lib/python2.7/
site-packages/matplotlib/backends/backend_macosx.py", line 109,
in_set_device_scale
self.figure.dpi = self.figure.dpi / self._device_scale * value
File "/usr/local/lib/python2.7/site-packages/matplotlib/figure.py",
line 416, in _set_dpi
self.callbacks.process('dpi_changed', self)
File "/usr/local/lib/python2.7/site-packages/matplotlib/cbook.py",
line 546, in process
if s in self.callbacks:
AttributeError: 'CallbackRegistry' object has no attribute 'callbacks'
你所谓的 "loading script" 没有任何意义。
根据您在问题中提供的 link,加载所选图形非常简单:
# Load figure from disk and display
fig_handle2 = pl.load(open('sinus.pickle','rb'))
fig_handle2.show()
最终解决方案包括修改 fig_handle.show() 到 plt.show() 根据 ImportanceOfBeingErnest
给出的建议,将后端修改为 "TkAgg"