Я пытаюсь создать анимацию Matplotlib данных моей лапы, где вы можете увидеть распределение давления на всю нажимную пластину со временем (256x64 датчиков на 250 кадров).
Я нашел рабочий пример на собственном сайте Matplotlib и смог заставить его работать над моими собственными данными. Однако "анимация" ужасно медленная, и я не знаю, как ее ускорить.
Вот пример gif Joe Kington сделанный в другом ответе, который касается скорости, с которой он отображается. Учитывая, что измерения выполняются на частоте 125 Гц, это делает измерения очень ужасными. Если он работает со скоростью 30-60 кадров в секунду, его можно запустить за 4 или 8 секунд, а не за текущие 20 +.
Я не возражаю против использования любого инструмента, который мне нужен для выполнения этой работы, пока есть хорошая документация, чтобы выяснить, как это сделать.
Итак, мой вопрос: как ускорить эти анимации?
Я внедрил предложение Ignacio для ввода t.Start(1), однако он работает только "прилично", когда на рисунке это большое:
class PlotFigure(Frame):
""" This class draws a window and updates it with data from DataCollect
"""
def __init__(self):
Frame.__init__(self, None, -1, "Test embedded wxFigure")
#Varying the size of Figure has a big influence on the speed
self.fig = Figure((3,3), 75)
self.canvas = FigureCanvasWxAgg(self, -1, self.fig)
EVT_TIMER(self, TIMER_ID, self.onTimer)
def init_plot_data(self):
self.datagen = DataCollect(array3d)
self.axes = self.fig.add_subplot(111)
self.axes.imshow(self.datagen.next().T)
def onTimer(self, evt):
self.data = self.datagen.next()
self.axes.imshow(self.datagen.next().T)
self.canvas.draw()
Когда я изменяю размер окна во время анимации, он немедленно замедляется до обхода. Это заставляет меня подозревать, что задержка не является единственной причиной замедления. Итак, любые другие предложения? Если вам интересно, здесь ссылка на один из файлов ASCII.