【问题标题】:How to pickle a lot of subplots?如何腌制很多次要情节?
【发布时间】:2021-10-07 06:12:59
【问题描述】:

是否可以用 18*18 的子图腌制图形?

figure = plt.figure()
axes = figure.subplots(18, 18, sharex='all', sharey='all', gridspec_kw={'hspace': 0, 'wspace': 0})
for ax in axes.flat:
    ax.set_yticks([])
    ax.set_xticks([])
with open('fig.pickle', 'wb') as file:
    pickle.dump(figure, file)

当我尝试这样做时,我得到一个错误:RecursionError:调用 Python 对象时超出了最大递归深度

【问题讨论】:

    标签: python matplotlib pickle


    【解决方案1】:

    这可以通过sys 模块增加系统递归限制来解决。递归限制可以提早停止任何未优化/错误的递归,并且可以安全地增加到此用例的 ~10,000(前提是您有 RAM 来处理它)。

    这是一个工作示例:

    import pickle 
    import sys
    
    import matplotlib.pyplot as plt 
    
    
    sys.setrecursionlimit(10_000) #this makes it work
    
    
    figure = plt.figure()
    axes = figure.subplots(18, 18, sharex='all', sharey='all', gridspec_kw={'hspace': 0, 'wspace': 0})
    for ax in axes.flat:
        ax.set_yticks([])
        ax.set_xticks([])
    
    with open('fig.pickle', 'wb+') as outfile:
        pickle.dump(figure, outfile)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多