0

如何正确使用 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 中多次保存。

4

1 回答 1

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()
于 2019-05-06T08:59:24.420 回答