通过遍历变量将多个图形保存在同一pdf中-Python

时间:2019-04-30 10:36:02

标签: python pdfpages

如何正确使用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:没有这样的数字:'shop_recovered_volume_graph'并且不保存数字。如果savefig为空,例如pp.savefig(),则只有最后一个图形会多次保存在pdf中。

1 个答案:

答案 0 :(得分:0)

我想出了以下解决方案:问题是正确地访问了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()