我正在用Fortran中的Metropolis-Algorithm模拟IsingModel,并想将python的步骤可视化为电影。我有一个100x100的网格,其值来自{-1,1},并在网格上执行了约1_000_000步/更改。
我认为我可以使用matplotlib函数pyplot.imshow绘制/动画每个步骤,因为我还需要一些快照/图像。 但是我找不到一个选项来更新最后一步更改的“像素”。和set_array(...)reaaaallllyyy慢... 有没有我看不到的快速解决方案,或者我必须选择另一个图书馆?
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)