Я использую python 3.6.7, matplotlib 2.2.2, ipython 7.0.1, ноутбук 5.6.0 и jupyter 1.0.0.
Я хотел бы создать 10 графиков, отображаемых в 2 строках, которые останутсяв том же месте на ноутбуке Jupyter во время цикла, и новые результаты будут отображаться каждые 10 итераций на тех же 10 графиках.Вот некоторый фиктивный код только для иллюстрации.
import matplotlib.pyplot as plt
fig, ax = plt.subplots(2, 5, sharex='col', sharey='row', figsize=(40,15))
ax = ax.flatten()
for i in range(TRAIN_STEPS):
if i%10 == 0:
for j in range(10):
ax[j].set_title(j+i,fontsize=40)
ax[j].axes.get_xaxis().set_visible(False)
ax[j].axes.get_yaxis().set_visible(False)
ax[j].imshow(weight[i]), cmap=plt.get_cmap('seismic'))
if i%100 == 0:
print('Step:' + str(i))
Я создал заголовок с помощью i + j, чтобы лучше видеть, что было обновлено.В этом примере набор графиков отображается только в конце (не во время цикла).
Если я использую plt.show()
, то я вижу только первый набор графиков 
Не знаюхотите сохранить сюжеты в каждом наборе и сделать анимацию позже.Есть идеи, можем ли мы это сделать и как?(Я смотрю на многие вещи, но мне чего-то не хватает plt.ion()
plt.show(block=False)
plt.pause(1)
time.sleep(0.1)
f = plt.figure()
f.canvas.update()
f.canvas.flush_events()
f.canvas.draw_idle()