首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jupyter笔记本外显示动画

在jupyter笔记本外显示动画
EN

Stack Overflow用户
提问于 2017-08-16 23:42:38
回答 1查看 2.6K关注 0票数 1

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

代码语言:javascript
复制
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函数需要超过一分钟的时间来生成我需要的视频。在终端机里,动画才刚刚开始。当听众要求展示不同初始条件下的结果时,我想在会议上快速原型。

还有一个意想不到的行为来自笔记本。笔记本上的视频不同于终端中弹出的视频。笔记本中的视频在绘图时没有擦除现有的帧,这使得动画看起来凌乱不堪,无法跟踪与其对应的画面的轨迹。

从笔记本的输出动画

终端输出的动画

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

将笔记本需要显示其他情节。我希望如此,但它是不必要的。如果需要的话,我可以打开另一本笔记本。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-17 09:25:14

笔记本内动画

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

代码语言:javascript
复制
%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_data更新的,无论是保存到视频还是显示在屏幕上,都会显示相同的内容。因此,如果不是为了替换视频所需的时间,您可以按照最初显示的方式使用它,删除%matplotlib notebook并添加

代码语言:javascript
复制
from IPython.display import HTML
HTML(anim.to_html5_video())

如果使用matplotlib 2.1,也可以选择JavaScript动画,

代码语言:javascript
复制
from IPython.display import HTML
HTML(ani.to_jshtml())

新窗口中的动画

如果希望窗口出现,则不应使用%matplotlib inline%matplotlib notebook,而应将上述代码的第一行替换为

代码语言:javascript
复制
%matplotlib tk

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45724548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档