我正在尝试从我的讲座中调试此代码,以便它可以在我的计算机(Win10)上运行。在终端中运行时,我得到该plt.figure()部分定义的第一个图像,但动画部分从未运行。我收到了与枕头相关的错误代码。
我已经使用 pip 下载了 ffmep 并以同样的方式更新了我的 matplotlib。
这是代码:
if plot_flag == True:
res = []
for i in range(N):
res.append(np.array(list_particles[i].pos))
if plot_flag == True:
### display one trajectory
pos = res[0]
plt.plot(pos[:,0],pos[:,1],'k-')
plt.show()
###produce an animation
fig = plt.figure()
ax = fig.add_subplot(111, autoscale_on=False, xlim=(0, L), ylim=(0, L))
ax.grid()
patch=[]
for i in range(N):
patch.append(plt.Circle(res[i][0,:],list_particles[i].radius,fc="r"))
ax.add_patch(patch[i])
def animate(i):
for j in range(N):
x,y=res[j][i,:]
patch[j].center= (x,y)
def init():
line.set_data([], [])
time_text.set_text('')
return line, time_text
ani = animation.FuncAnimation(fig, animate, np.arange(0, Niter),
interval=25, blit=False)
ani.save("gas.mp4",fps=25)
我打算在关闭图形窗口后获得动画,但我收到错误消息:
MovieWriter ffmpeg unavailable. Trying to use pillow instead.
这对我或互联网都毫无意义。除了res[i][0,:]对我没有任何意义的(第 16 行)之外,我可以理解大部分代码,起初我认为逗号不应该在那里,但在第 21 行重复了相同的语法:x,y=res[j][i,:]。
我也无法在 spyder 中运行此代码,因为我收到了 deprecated() 错误,该错误甚至会阻止调试运行。
有人可以帮助我了解发生了什么,因为我现在完全迷失了,非常感谢。
白衣非少年
相关分类