Сохранение нескольких рисунков в одном и том же файле PDF путем перебора переменных - Python - PullRequest
0 голосов
/ 30 апреля 2019

Как правильно использовать 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()

Я бы хотел перебрать сохраненные переменные в глобалах (), в которых есть строка '_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 голосов
/ 06 мая 2019

Я нашел следующее решение: проблема заключалась в правильном доступе к глобальным переменным (), то есть словарю. Так что для определенного ключа я получаю доступ к значению:

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()
...