我实际上在做一个Python项目,在这个项目中我需要设置浓度随时间变化的动画,为此我需要时间t-1的浓度值来计算时间t的浓度
我希望“animate”函数在被调用时使用n0和n1的新值。目前,它只使用我在初始条件下声明的n0和n1值,而不考虑第一次绘图时对n0和n1所做的更改。在
下面是我的代码示例(K、L和M是常量浮点):# Initial conditions
n0 = f(X)
n1 = n0.copy()
n1[1:-1] = K * (n0[0:-2] - 2 * n0[1:-1] + n0[2:]) - L * (n0[2:] - n0[:-2]) + M * n0[1:-1]
n0 = n1.copy()
# Animation
fig = plt.figure()
ax = plt.axes(xlim=(-0.5, 1.3), ylim=(min(f(X)), max(f(X))), xlabel="x", ylabel="n", title="n en fonction de x")
line, = ax.plot([], [], lw=2)
time_text = ax.text(0.02, 0.95, '', transform=ax.transAxes)
def init():
time_text.set_text('')
line.set_data([],[])
return line, time_text
def animate(i,n0,n1):
n1[1:-1] = K * (n0[0:-2] - 2 * n0[1:-1] + n0[2:]) - L * (n0[2:] - n0[:-2]) + M * n0[1:-1]
n0 = n1.copy()
t = i * dt
time_text.set_text('time = %f ms' % (t * 1000))
y = n1
line.set_data(X, y)
return line, time_text
ani = animation.FuncAnimation(fig, animate, init_func=init, frames=nt, blit=True, interval=1, repeat=False, fargs=(n0, n1))
plt.show()
希望你能帮我,因为我是新用户动画。功能动画我也不明白这一切。在