如何正确使用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中。
答案 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()