Как сохранить фигуру matplotlib из списка matplotlib.figure.Figure? - PullRequest
0 голосов
/ 02 мая 2018

Можно ли сохранить фигуру matplotlib после ее создания? Например:

import matplotlib.pyplot as plt
import numpy
normal = numpy.random.normal(0, 1, 100)
df = pandas.DataFrame(normal.reshape((10, 10)))

figs = []

for i in df.keys():
    fig = plt.figure()
    plt.plot(df.index, df[i])
    figs.append(fig)

print(figs)

создает цифры в списке:

[<matplotlib.figure.Figure object at 0x7f8f158f1b00>, <matplotlib.figure.Figure object at 0x7f8f100d6128>, <matplotlib.figure.Figure object at 0x7f8f10081da0>, <matplotlib.figure.Figure object at 0x7f8f0a0354a8>, <matplotlib.figure.Figure object at 0x7f8f09fbd470>, <matplotlib.figure.Figure object at 0x7f8f09f18b00>, <matplotlib.figure.Figure object at 0x7f8f09f12d68>, <matplotlib.figure.Figure object at 0x7f8f09e88860>, <matplotlib.figure.Figure object at 0x7f8f09ebbc18>, <matplotlib.figure.Figure object at 0x7f8f09d6e198>]

Мне бы не хотелось явно сохранять график непосредственно после создания, но у меня есть возможность сделать это позже (возможно, из другого класса). Идеально было бы передать значение fig в plt.savefig, но, похоже, нет места для этого типа использования.

Чтобы уточнить. Я хотел бы сделать:

fname = r'/path/to/file.jpg'
plt.savefig(fname, fig=figs[2])

Возможно ли это по-другому?

1 Ответ

0 голосов
/ 02 мая 2018

Просто используйте fig.savefig(). Вот код для вашего случая:

for idx, fig in enumerate(figs):
    fname = '{}_tmp.jpg'.format(idx)
    fig.savefig(fname)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...