Как ускорить анимацию Matplotlib? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть почасовые данные за 8 месяцев, которые я хочу отобразить в стиле анимации. В настоящее время я могу сделать это, однако это становится чрезвычайно медленным по мере увеличения количества данных. Обратите внимание, что я даже установил интервал только 1 мс! Есть ли способ гарантировать, что анимация не замедляется? Кроме того, как я могу построить несколько линий одновременно в этом стиле?

Вот мой код:

x = benchmark_returns.index
y = benchmark_returns['Crypto 30'] 
#Would preferrably like to plot 
#benchmark_returns[['Crypto 30', 'NASDAQ', 'Dow Jones 30', 'S&P 500']] at the same time

fig, ax = plt.subplots()
line, = ax.plot(x, y, color='k')

def update(num, x, y, line):
    line.set_data(x[:num], y[:num])
    return line,


ani = animation.FuncAnimation(fig, update,  fargs=[x, y, line],
                              interval = 1, blit=True)
plt.show()

Вот пример моего фрейма данных:

                     Crypto 30  Dow Jones 30  NASDAQ  S&P 500
2019-06-09 00:00:00  100.00000         100.0   100.0    100.0
2019-06-09 01:00:00   95.78653         100.0   100.0    100.0
2019-06-09 02:00:00   95.78653         100.0   100.0    100.0
2019-06-09 03:00:00   95.78653         100.0   100.0    100.0
2019-06-09 04:00:00   95.78653         100.0   100.0    100.0
2019-06-09 05:00:00   95.78653         100.0   100.0    100.0
2019-06-09 06:00:00   95.78653         100.0   100.0    100.0
2019-06-09 07:00:00   95.78653         100.0   100.0    100.0
2019-06-09 08:00:00   95.78653         100.0   100.0    100.0
2019-06-09 09:00:00   95.78653         100.0   100.0    100.0

1 Ответ

0 голосов
/ 21 марта 2020

Отображение анимации с помощью plt.show() ограничено скоростью, с которой компьютер может перерисовать график - следовательно, интервал не обязательно будет определять фактическую скорость, с которой будет обновляться анимация. Сохранение анимации через

ani.save("animation.mp4")

или подобное позволит вам просматривать анимацию с указанной скоростью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...