Я моделирую IsingModel с помощью Метрополиса-алгоритма в Фортране и хочу визуализировать шаги с питоном в виде фильма.У меня есть сетка 100x100 со значениями {-1,1} и выполнением около 1_000_000 шагов / изменений в сетке.
Я думал, что смогу построить / анимировать каждый шаг с помощью функции matplotlib pyplot.imshow по мере необходимостинекоторые снимки / изображения также.Однако я не могу найти вариант, чтобы просто обновить «пиксель», который был изменен на последнем шаге.И set_array (...) слишком медленно работает ... Есть ли быстрое решение, которого я не вижу, или мне нужно выбрать другую библиотеку?
def init():
global lattice
lattice=ff.read_record('({},{})i1'.format(N,N))
im.set_data(lattice)
return [im]
# animation function. This is called sequentially
def animate(i):
change=np.array(ff.read_record('i1','i1')).ravel()
if(change[0]!=-1):
lattice[change[0],change[1]]=-1*lattice[change[0],change[1]]
im.set_array(lattice)
return [im]
anim = animation.FuncAnimation(fig, animate,frames=10000 interval=10, init_func=init, blit=True)
anim.save('basic_animation.mp4', fps=30)