gpt4 book ai didi

python - 在 Jupyter Notebook 之外显示动画

转载 作者:行者123 更新时间:2023-12-01 02:40:54 33 4
gpt4 key购买 nike

我想使用 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 函数需要一分多钟才能生成我需要的视频。在终端中时,动画就会开始。当观众要求展示不同初始条件的结果时,我想在 session 期间快速制作原型(prototype)。

笔记本电脑也出现意外行为。笔记本上的视频与终端中弹出的视频不同。笔记本中的视频在绘制时没有删除现有帧,使得动画看起来很困惑,并且无法像其对应的那样跟踪轨迹。

Animation from the notebook's output

Animation from the terminal's output

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

笔记本是否需要显示其他情节。我希望如此,但没有必要。如果需要的话,我可以打开另一个笔记本来绘图。

如果我没有解释清楚,请告诉我。

最佳答案

笔记本内部的动画

读完这个问题,我不知道你是否知道%matplotlib notebook后端。虽然它将显示笔记本内部的动画,但我认为它可以满足所有描述的需求。

%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并添加

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

enter image description here

关于python - 在 Jupyter Notebook 之外显示动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45724548/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com