Я новичок в Python и пытаюсь сделать gif из некоторых данных. Мои данные хранятся в двух двумерных списках (это правильный способ ссылаться на это в Python): positionsMatrix
и speedsMatrix
Я пытаюсь нанести данные с помощью FuncAnimation как:
#...Read the data from csv files and store them...
#Now create the animation:
fig = matplotlib.pyplot.figure()
ax = matplotlib.pyplot.axes(xlim = (0.2695, 0.2745), ylim = (-40000, 40000))
line, = ax.plot([], [], lw=3)
def init():
line.set_data([], [])
return line,
def animate(i):
x = []
for row in positionsMatrix:
x.append(row[i])
y = []
for row in speedsMatrix:
y.append(row[i])
print(x,y) #Here I print the data to make sure it exists. It does Exist.
line.set_data(x, y)
return line,
anim = matplotlib.animation.FuncAnimation(fig, animate, init_func=init, frames=len(positionsMatrix[0]), interval=20, blit=True)
anim.save('PhaseSpace.gif', writer='imagemagick')
Все, что я получаю, это просто ось, без указания точки. Я также получаю GIF, но ничего не отображается, это просто пустая ось.
Я получаю данные из файлов CSV, как, например:
timesMatrix = list(csv.reader(open('HistoryTimes.csv'), delimiter=','))
for row in timesMatrix:
i = 0
while i < len(row):
row[i] = float(row[i])
i += 1
Я построил данные, используя :
matplotlib.pyplot.plot(positionsMatrix[0], speedsMatrix[0], 'bo')
И все хорошо показывает. Кто-нибудь может направить меня в правильном направлении? Я новичок в python, и я не смог понять, что я делаю неправильно.