Я пытаюсь анимировать кривую в 3D и у меня возникли некоторые проблемы. Я успешно анимировал некоторые вещи в 2D, поэтому я подумал, что знаю, что делаю. В приведенном ниже коде я параметрически генерирую значения x, y и z в виде спирали и проверил, что могу построить полную кривую в 3D. Чтобы начать анимацию кривой, я пытаюсь начать с построения только первых двух точек данных, а затем использовать FuncAnimation для обновления данных, чтобы они отображали большие части данных. Но, как я уже сказал, по какой-то причине это не работает, и я понятия не имею, почему; все, что я получаю, это начальный график с первыми двумя точками данных. Любая помощь будет оценена.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.animation as animation
t_max = 10
steps = 100
t = np.linspace(0, t_max, steps)
x = np.cos(t)
y = np.sin(t)
z = 0.1*t
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
line, = ax.plot(x[0:1], y[0:1], z[0:1])
def update(i):
line.set_xdata(x[0:i])
line.set_ydata(y[0:i])
line.set_zdata(z[0:i])
fig.canvas.draw()
ani = animation.FuncAnimation(fig, update, frames=t, interval=25, blit=False)
plt.show()