Я пытаюсь создать анимационный фильм из данных отслеживания для набора баллов - 5 баллов.
Формат набора данных
Координаты x, y для 5 точек находятся в кадре данных Pandas с общим числом столбцов 10 - каждая парастолбцы - это координаты x, y для точки в любой момент времени .В каждой строке указывается положение точки после 1/10 секунды. Пример будет выглядеть следующим образом -
x1 y1 x2 y2 x3 y3 x4 y4 x5 y5
0 1 3 2 1 9 1 1 1 8 1
1 5 7 5 5 7 5 5 8 4 5
2 7 1 7 9 7 5 4 8 0 7
3 3 5 4 6 3 6 9 7 3 0
Функция построения графика
Функция, которую я использовал для создания анимации из точек, такова:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
df = pd.read_csv(file)
def _update_plot(i, fig, scat):
scat.set_offsets(([dff.iloc[i,0], dff.iloc[i,1]], [dff.iloc[i,2],dff.iloc[i,3]], [dff.iloc[i,4],dff.iloc[i,5]], [dff.iloc[i,6],dff.iloc[i,7]], [dff.iloc[i,8],dff.iloc[i,9]]))
return scat,
anim = animation.FuncAnimation(fig, _update_plot, fargs = (fig, scat),
frames = len(dff.index)-1, interval = 100)
Это работает для меня без каких-либо проблем.Однако сейчас я хочу создать анимацию Вороного из точек.Я думал, что это будет так же просто, как просто добавить это в функцию построения графика после импорта из scipy.spatial
:
vor = Voronoi(points) ##points are the rows of the `df`
voronoi_plot_2d(vor)
Однако это не сработало.Там не было никаких ошибок, но ничего не изменилось.Я уверен, что создание анимации немного сложнее, чем я пытался.
Конечный результат, который я имею в виду, будет очень похож на это видео (конечно, больше очков).Как я могу создать анимацию, используя matplotlib?Любая помощь будет оценена.