Matplotlib: анимация большого набора данных

У меня есть файл 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 помогало.

ImportanceOfBeingErnest 01.04.2019 16:36
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
1
202
0

Другие вопросы по теме