【问题标题】:Pickle figures from matplotlib: 2来自 matplotlib 的泡菜数字:2
【发布时间】:2018-01-23 07:54:48
【问题描述】:

Pickle figures from matplotlib 之后,我正在尝试从泡菜中加载一个图形。我正在使用与响应中建议的修改相同的代码。 保存脚本:

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 numpy 1.12.1

附言根据建议将 fig_handle.show() 替换为 pat.show() 会产生错误: Traceback(最近一次调用最后一次):

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'

【问题讨论】:

  • 你是对的。我已经编辑了我的问题
  • fig.show() 只能在交互模式下工作。否则您需要致电plt.show()
  • 感谢您的回复。我试图对代码进行此修改并遇到以下错误:
  • 这可能是 MacOS 后端的问题。您可以尝试使用不同的后端,例如“TkAgg”。

标签: python-2.7 matplotlib pickle figure


【解决方案1】:

你所谓的“加载脚本”没有任何意义。

根据您在问题中提供的链接,加载选择的图形非常简单:

# Load figure from disk and display
fig_handle2 = pl.load(open('sinus.pickle','rb'))
fig_handle2.show()

【讨论】:

  • “加载脚本”本身就可以正常工作,所以说它没有意义可能有点难,只是称它为“加载脚本”有点混乱,对吧?
  • 没错,也许这太苛刻了。没有意义的部分是自愿调用一个Figure实例ax
【解决方案2】:

最终解决方案包括修改 fig_handle.show() 到 plt.show() 根据 ImportanceOfBeingErnest 给出的建议,将后端修改为“TkAgg”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 2013-05-25
    • 2012-06-06
    • 2018-07-29
    • 1970-01-01
    相关资源
    最近更新 更多