Я пытаюсь оживить несколько простых сюжетов с помощью imshow, но, очевидно, есть проблема.
Это небольшая демонстрация моей проблемы:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import animation
fig,axs=plt.subplots(2,5,figsize=(10,4))
imgs=[]
for row in axs:
for col in row:
col.set_xlim(4.5,-.5)
col.set_ylim(4.5,-.5)
col.set_xticks([])
col.set_yticks([])
#line A
imgs.append(col.imshow([[]],animated=1))
#freezes the animation([[]] is just a placeholder)
#line B
#imgs.append(col.imshow(np.arange(25).reshape((5,5)),animated=1))
#animation does work if the above line is used instead
def func(frm):
for i in range(10):
imgs[i].set_array(np.arange(25).reshape(5,5)*np.log10(frm+1))
return imgs
anim=animation.FuncAnimation(fig,func,10,interval=100)
plt.show()
Если я использую строку Aанимация зависает, как будто func не выполняется (хотя на самом деле это так), не вызывая ошибок.Если вместо этого используется строка B, анимация работает.Я что-то упускаю из-за анимации imshow ?