У меня есть файл CSV с 20 суставами человеческого тела в XYZ, и мне нужно анимировать их по осям XY и ZY. Я использовал pandas
для сбора данных из файла CSV и scatter set_offsets
где я разместил собранные данные, например
def _update_plot_XY(self, i, fig, scat):
scat.set_offsets((
(self.data.HeadX[i], self.data.HeadY[i]),
(self.data.ShoulderCenterX[i], self.data.ShoulderCenterY[i]),
(self.data.SpineX[i], self.data.SpineY[i]),
(self.data.HipCenterX[i], self.data.HipCenterY[i]),
(self.data.ShoulderLeftX[i], self.data.ShoulderLeftY[i]),
(self.data.ElbowLeftX[i], self.data.ElbowRightY[i]),
(self.data.WristRightX[i], self.data.WristRightY[i]), (self.data.HandRightX[i], self.data.HandRightY[i]),
(self.data.HandLeftX[i], self.data.HandLeftY[i]),
(self.data.ShoulderRightX[i], self.data.ShoulderRightY[i]),
(self.data.ElbowRightX[i], self.data.ElbowRightY[i]),
(self.data.WristLeftX[i], self.data.WristLeftY[i]), (self.data.HipLeftX[i], self.data.HipLeftY[i]),
(self.data.KneeLeftX[i], self.data.KneeLeftY[i]),
(self.data.AnkleLeftX[i], self.data.AnkleLeftY[i]),
(self.data.FootLeftX[i], self.data.FootLeftY[i]), (self.data.HipRightX[i], self.data.HipRightY[i]),
(self.data.KneeRightX[i], self.data.KneeRightY[i]),
(self.data.AnkleRightX[i], self.data.AnkleRightY[i]), (self.data.FootRightX[i], self.data.FootRightY[i])))
return scat
Я знаю что фпс 33
self.anim_XY = animation.FuncAnimation(self.fig, self.human._update_plot_XY, fargs=(self.fig, scat2),
frames=self.human.frames, interval=33, repeat=False)
Я пытаюсь построить каждый график на новом рисунке, но это выглядит ужасно. Есть ли другие варианты увеличения FPS?
Выбор меньшего числа для
interval
увеличит количество кадров в секунду. Но есть ограничение на то, как быстро matplotlib может рисовать фигуру. Частоblit=True
помогало.