Python 在jupyter笔记本外显示动画

Python 在jupyter笔记本外显示动画,python,animation,matplotlib,jupyter-notebook,Python,Animation,Matplotlib,Jupyter Notebook,我想使用Jupyter笔记本来托管演示文稿的代码,但我不想在笔记本中嵌入动画。(因为嵌入视频非常耗时。)我想运行单元格并弹出一个屏幕,就像在终端中运行代码一样 from matplotlib.animation import FuncAnimation from matplotlib.pyplot import plot, show, subplots, title # annotate from IPython.display import HTML anim = FuncAnimati

我想使用Jupyter笔记本来托管演示文稿的代码,但我不想在笔记本中嵌入动画。(因为嵌入视频非常耗时。)我想运行单元格并弹出一个屏幕,就像在终端中运行代码一样

from matplotlib.animation import FuncAnimation 
from matplotlib.pyplot import plot, show, subplots, title  # annotate
from IPython.display import HTML

anim = FuncAnimation(fig, update, frames=numlin, interval=100, fargs=( 
                     d, g, lr_D, lr_G, hasFake, speed, show_sample),
                     init_func=init, blit=True, repeat=0)           
HTML(anim.to_html5_video())
为什么要使用笔记本?使用笔记本的主要原因是我有很多不同的实验设置。我想使用不同的单元格来表示不同的配置,如果人们想查看特定配置的结果,我可以立即运行它

时差。HTML函数需要一分钟来生成我需要的视频。在终端中,动画将刚刚开始。我想在会议期间快速制作原型,同时观众要求展示不同初始条件的结果

笔记本中还有一个意外行为。笔记本中的视频与终端中弹出的视频不同。笔记本电脑中的视频在绘制时没有擦除现有帧,使动画看起来凌乱,并且无法像其对应对象那样跟踪轨迹

这种绘图行为是我不想使用笔记本显示动画的另一个原因

笔记本是否需要显示其他绘图。我希望如此,但这不是必须的。如果需要,我可以打开另一个笔记本进行绘图

如果我解释得不好,请告诉我。

笔记本内的动画 阅读这个问题,我想知道您是否知道
%matplotlib笔记本的
后端。虽然它将在笔记本中显示动画,但我觉得它将满足所有描述的需求

%matplotlib notebook
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation 
import numpy as np

a = np.random.rand(10,4)
fig, ax =plt.subplots()
ax.axis([0,1,0,1])
points1, = plt.plot([],[], ls="", marker="d", color="indigo")
points2, = plt.plot([],[], ls="", marker="o", color="crimson")

def update(i):
    points1.set_data(a[i:i+2,0],a[i:i+2,1])
    points2.set_data(a[i:i+2,2],a[i:i+2,3])
    return points1, points2

anim = FuncAnimation(fig, update, frames=len(a)-1, repeat=True)

请注意,使用此类动画时,无论是保存到视频还是显示在屏幕上,数据都会使用
set\u data
进行更新。 因此,如果不是更换视频所需的时间,您可以按照最初显示的方式使用它,删除
%matplotlib notebook
,然后添加

from IPython.display import HTML
HTML(anim.to_html5_video())
如果使用matplotlib 2.1,还可以选择JavaScript动画

from IPython.display import HTML
HTML(ani.to_jshtml())
新窗口中的动画 如果希望显示窗口,则不应使用
%matplotlib inline
%matplotlib notebook
,而应将上述代码中的第一行替换为

%matplotlib tk

解决方案肯定取决于您对项目的具体设想。笔记本应该包含什么?它还需要显示其他情节吗?如果是,怎么做?另外,为什么在笔记本电脑内部显示动画比在笔记本电脑外部显示动画更耗时?解释得越好,得到的答案就越好。@importanceofbeingerest感谢您的澄清。
%matplotlib-tk
解决了我的问题。谢谢你的帮助。