Я на самом деле работаю над проектом 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()
Надеюсь, вы сможете мне помочь, потому что я новый пользователь анимации. Фанканизация, и я не все понимаю в этом.