Повторное использование фиг и осей сюжетов matplotlib - PullRequest
0 голосов
/ 03 апреля 2020

Создание 2 на 2 вспомогательных участков на рисунке и сохранение рисунка.

Пример кода:

def plot_all(i):
    fig, axes = plt.subplots(nrows = 2, ncols = 2, figsize = (20,10))   ## Takes the most time
    fig.suptitle('title')
    axes[0,0].plot(np.random.randn(3))
    axes[0,1].plot(np.random.randn(3))
    axes[1,0].plot(np.random.randn(3))
    axes[1,1].plot(np.random.randn(3))

    fig.savefig('my_plot{}.jpg'.format(i))
    plt.close(fig)

for i in range(10000):
    plot_all(i)

Я понял, что первые две строки функции plot_all используют большинство время для каждой итерации истекло, поэтому я пытаюсь повторно использовать рис и оси, чтобы не было необходимости создавать тезисы для следующего последовательного построения. Есть ли способ снова сохранить рис и оси для следующей итерации?

1 Ответ

1 голос
/ 03 апреля 2020

Я бы сделал это:

def plot_all(i, axes):
    axes[0,0].plot(np.random.randn(3))
    axes[0,1].plot(np.random.randn(3))
    axes[1,0].plot(np.random.randn(3))
    axes[1,1].plot(np.random.randn(3))


fig, axes = plt.subplots(nrows = 2, ncols = 2, figsize = (20,10))
fig.suptitle('title')
for i in range(3):
    plot_all(i, axes)
    fig.savefig('my_plot{}.jpg'.format(i))
    for ax in axes.flat:
        ax.cla()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...