FuncAnimation Runtime Jupyter против Spyder - PullRequest
0 голосов
/ 28 ноября 2018

Мне трудно понять, почему анимация, которую я создаю в приведенном ниже коде, занимает гораздо больше времени в записной книжке Jupyter, чем в скрипте Python, запускаемом в Spyder (1 минута против мгновенно).Я бы предпочел остаться в ноутбуке Jupyter, но буду увеличивать его и беспокоюсь о времени работы в будущем.

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

%matplotlib inline

plt.rcParams["animation.html"] = "html5"

#Defining our figure

Fig, ax = plt.subplots()
Point, = ax.plot( [], [], 'ko')

ax.set_xlim(0, 5000)
ax.set_ylim(0, 400)
ax.grid()
ax.set_xlabel('x (m)')

g = 9.8
theta = 20
v0 = 250
t0 = 0

dt = .01

maxframe = 1747

def init():

    Point, = ax.plot([],[],'ko')

    return Point,


def runfunc (i): 

    xdata = ( v0 * (t0 + i*dt) * np.cos(np.deg2rad(theta)))

    ydata = ( v0 * (t0 + i*dt) * np.sin(np.deg2rad(theta)) - .5*g* 
            (t0 + i*dt)**2)

    Point.set_data(xdata, ydata)

    return Point,


anim = animation.FuncAnimation(Fig,  runfunc, init_func=init, 
       frames=maxframe, interval=5, blit=True)

anim

Результат один и тот же, независимо от того, у меня "blit" равно true или false.Если я уменьшу количество кадров, анимация не достигнет желаемого конца.Может ли это быть проблема с памятью или графикой Jupyter?

ПРИМЕЧАНИЕ. В Spyder практически тот же код делает анимацию мгновенно, но, кажется, движется по ней с непостоянной скоростью, что также кажется странным.

...