代码之家  ›  专栏  ›  技术社区  ›  Gideon Kogan

从matplotlib中Pickle图形:2

  •  0
  • Gideon Kogan  · 技术社区  · 8 年前

    下列的 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

    p、 根据建议,美国更换了fig\U手柄。用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'
    
    2 回复  |  直到 8 年前
        1
  •  0
  •   Diziet Asahi    8 年前

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

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

    # Load figure from disk and display
    fig_handle2 = pl.load(open('sinus.pickle','rb'))
    fig_handle2.show()
    
        2
  •  0
  •   Gideon Kogan    8 年前

    最终解决方案包括修改 fig\u手柄。显示() 到 plt。显示() 根据ImportanceOfBeingErnest提供的建议,将后端修改为“TkAgg”