【问题标题】:Saving multiple figures in same pdf by iterating over variables - Python通过迭代变量将多个数字保存在同一个pdf中 - Python
【发布时间】:2019-04-30 10:36:01
【问题描述】:

如何正确使用 pp.savefig() 来迭代多个变量?

而不是一一保存每个图并将它们添加到pdf中

from matplotlib.backends.backend_pdf import PdfPages
pp = PdfPages('data_report.pdf')

pp.savefig(shop_recovered_volume_graph)
pp.savefig(shop_recovered_cases_graph)
#etc...
pp.close()

我想遍历 globals() 中保存的变量,其中包含字符串“_graph”。我的解决方案

from matplotlib.backends.backend_pdf import PdfPages
pp = PdfPages('data_report.pdf')

#search for string
s = '_graph'

for i in globals():
    if s in i:
        print(i)
        pp.savefig(i)
pp.close()

打印变量,但也会给出 ValueError: No such figure: 'shop_recovered_volume_graph' 并且不保存数字。如果 savefig 为空,如 pp.savefig(),只会在 pdf 中多次保存最后一张图。

【问题讨论】:

    标签: python pdfpages


    【解决方案1】:

    我想出了以下解决方案:问题是正确访问 globals(),它是一个字典。因此,对于某个键,我正在访问该值:

    from matplotlib.backends.backend_pdf import PdfPages
    
    pp = PdfPages('data_report_graphs.pdf')
    
    #search for string
    string = '_graph'
    
    globals_dict = globals()
    
    for name, variable in globals_dict.items():
        if string in name:
            print(name)
            pp.savefig(variable)
    pp.close()
    

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 1970-01-01
      • 2011-12-21
      • 1970-01-01
      • 2013-07-21
      • 2022-10-25
      • 2020-08-02
      • 1970-01-01
      相关资源
      最近更新 更多