FuncAnimation运行时Jupyter vs Spyder

时间:2018-11-28 00:00:00

标签: python python-3.x animation jupyter-notebook spyder

我很难理解为什么我在下面的代码中创建的动画在Jupyter笔记本中创建比在Spyder中运行的python脚本要花费更长的时间(相对于瞬时运行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中,几乎相同的代码使动画立即生效,但似乎以非恒定的速率通过动画,这似乎也很奇怪。

0 个答案:

没有答案