- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将动画放入 iPython 笔记本中,但没有找到解决方案。我看到一篇讨论使用交互式小部件的帖子,但是我遇到了几个问题:首先,我看到的小部件的每个示例都使用 slider 或其他一些输入,而我只希望动画在单元格时自动运行正在运行。其次,Jupyter 网站上的所有文档似乎都已过时——每当我下载并运行他们的笔记本时,我都会收到有关某些模块已弃用的消息,然后文件中的某些内容无法运行,大概是因为他们正在尝试导入和运行访问不再存在的文件。
我看过有关该主题的其他一些页面,但它们通常需要下载二进制文件或其他模块,但我部分使用它来教一些学生数学,并且我已经让他们下载 Anaconda - 我希望为了不让他们下载和安装更复杂的东西,同时花时间不谈论数学,从而进一步混淆问题。
简而言之,有没有一种方法可以让我在 iPython 笔记本中创建动画,只需要使用简单的导入命令,这些命令就可以开箱即用地运行,可以用来自 Anaconda 的软件来说话?
[编辑:我还应该注意,我已经使用 Tkinter 制作动画,并且我确信我可以在 matplotlib 中制作动画。因此,如果有一种方法可以让您制作的动画在 iPython 笔记本中渲染,那对我来说肯定是一个可行的解决方案。]
[进一步编辑:我想我也可以说出我现在希望制作动画的内容,尽管我真的希望在我决定的情况下可以对可以制作动画的事物范围保持相当的灵 active 。现在我正在尝试制作一个数字时钟,以苏美尔 60 进制数字显示每个数字,以说明不同的计数和基本系统。所以它最初应该显示 |然后一秒钟后||依此类推,直到 10 被表示为 < 等等,直到最终时钟滴答作响到一分钟,现在显示 |:|代表一分钟,一秒。]
[ future 人类请注意:如果您正在实现一些动画并愿意公开托管它,请在评论中留下指向它的链接!我很好奇现在人们如何制作动画,也有点好奇他们在制作什么动画。]
最佳答案
使用 matplotlib 在 Jupyter/IPython 中制作动画绘图的一些选项:
在循环中使用 display
使用 IPython.display.display(fig)
在输出中显示图形。使用循环,您可能希望在显示新图形之前清除输出。请注意,这种技术通常给出的结果不太平滑。因此,我建议使用以下任何一种。
import matplotlib.pyplot as plt
import matplotlib.animation
import numpy as np
from IPython.display import display, clear_output
t = np.linspace(0,2*np.pi)
x = np.sin(t)
fig, ax = plt.subplots()
l, = ax.plot([0,2*np.pi],[-1,1])
animate = lambda i: l.set_data(t[:i], x[:i])
for i in range(len(x)):
animate(i)
clear_output(wait=True)
display(fig)
plt.show()
%matplotlib Notebook
使用 IPython magic %matplotlib Notebook
将后端设置为 Notebook 后端。这将使图形保持事件状态,而不是显示静态 png 文件,因此也可以显示动画。
完整示例:
%matplotlib notebook
import matplotlib.pyplot as plt
import matplotlib.animation
import numpy as np
t = np.linspace(0,2*np.pi)
x = np.sin(t)
fig, ax = plt.subplots()
l, = ax.plot([0,2*np.pi],[-1,1])
animate = lambda i: l.set_data(t[:i], x[:i])
ani = matplotlib.animation.FuncAnimation(fig, animate, frames=len(t))
plt.show()
%matplotlib tk
使用 IPython magic %matplotlib tk
将后端设置为 tk 后端。这将在新的绘图窗口中打开图形,该窗口是交互式的,因此也可以显示动画。
完整示例:
%matplotlib tk
import matplotlib.pyplot as plt
import matplotlib.animation
import numpy as np
t = np.linspace(0,2*np.pi)
x = np.sin(t)
fig, ax = plt.subplots()
l, = ax.plot([0,2*np.pi],[-1,1])
animate = lambda i: l.set_data(t[:i], x[:i])
ani = matplotlib.animation.FuncAnimation(fig, animate, frames=len(t))
plt.show()
将动画转换为 mp4 视频(@Perfi 已经提到的选项):
from IPython.display import HTML
HTML(ani.to_html5_video())
或在笔记本的开头使用plt.rcParams["animation.html"] = "html5"
。这将需要 ffmpeg 视频编解码器可用于转换为 HTML5 视频。然后视频会内联显示。因此,这与 %matplotlib inline
后端兼容。完整示例:
%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams["animation.html"] = "html5"
import matplotlib.animation
import numpy as np
t = np.linspace(0,2*np.pi)
x = np.sin(t)
fig, ax = plt.subplots()
l, = ax.plot([0,2*np.pi],[-1,1])
animate = lambda i: l.set_data(t[:i], x[:i])
ani = matplotlib.animation.FuncAnimation(fig, animate, frames=len(t))
ani
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.animation
import numpy as np
t = np.linspace(0,2*np.pi)
x = np.sin(t)
fig, ax = plt.subplots()
l, = ax.plot([0,2*np.pi],[-1,1])
animate = lambda i: l.set_data(t[:i], x[:i])
ani = matplotlib.animation.FuncAnimation(fig, animate, frames=len(t))
from IPython.display import HTML
HTML(ani.to_html5_video())
将动画转换为 JavaScript:
from IPython.display import HTML
HTML(ani.to_jshtml())
或在笔记本的开头使用plt.rcParams["animation.html"] = "jshtml"
。这将使用 JavaScript 将动画显示为 HTML。这与大多数新浏览器以及 %matplotlib inline
后端高度兼容。它在 matplotlib 2.1 或更高版本中可用。
完整示例:
%matplotlib inline
import matplotlib.pyplot as plt
plt.rcParams["animation.html"] = "jshtml"
import matplotlib.animation
import numpy as np
t = np.linspace(0,2*np.pi)
x = np.sin(t)
fig, ax = plt.subplots()
l, = ax.plot([0,2*np.pi],[-1,1])
animate = lambda i: l.set_data(t[:i], x[:i])
ani = matplotlib.animation.FuncAnimation(fig, animate, frames=len(t))
ani
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.animation
import numpy as np
t = np.linspace(0,2*np.pi)
x = np.sin(t)
fig, ax = plt.subplots()
l, = ax.plot([0,2*np.pi],[-1,1])
animate = lambda i: l.set_data(t[:i], x[:i])
ani = matplotlib.animation.FuncAnimation(fig, animate, frames=len(t))
from IPython.display import HTML
HTML(ani.to_jshtml())
关于python-3.x - iPython 笔记本中的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55366441/
我想跳出当前正在运行的程序并返回到 shell(无需重新启动 ipython) 最佳答案 在 Windows 上重新安装 console2 和 ipython 后,我遇到了同样的问题。如果您使用 ip
在使用 IPython 笔记本时,我越来越希望笔记本上附有一个控制台,以进行交互式编程。我发现自己添加了几行来测试代码片段,然后删除它们,这就是很好的用法。在更糟糕的用法中,我会更改同一行中的命令,一
ipthon-sql 是 ipython 的扩展,我先通过 pip install ipython-sql 安装 项目在这里:https://github.com/catherinedevlin/ip
我正在ipython Notebook中运行一些数据分析。一台单独的计算机收集一些数据并将其保存到服务器文件夹中,我的笔记本电脑会定期在该服务器上扫描新文件并进行分析。 我在while循环中执行此操作
我想让多个ipython Notebook实例在同一用户的不同端口上运行。可能吗? 类似于“NotebookApp.port”的端口列表(带有默认端口)。 最佳答案 再次运行jupyter noteb
所以 - ROOT 社区中的好人创造了以下魔法: # This is for intercepting the output of ROOT # In a cell, put %%rootprint
我正在使用 IPython 笔记本,我想在外部编辑器中编辑程序。 我如何获得 %edit file_name.py打开 Notepad++ 等编辑器。 最佳答案 运行 %edit?将为您提供%edit
精简版 我能否在 ipython 笔记本中获得 sympy 几何代数对象的漂亮 latex 风格打印? 更长的版本 在ipython笔记本,我可以从 sympy 得到各种数学对象的 pretty-pr
我不明白第四个和第六个提示中的 ${} 正在做什么,并且我找不到任何关于此的文档,Python for Unix and Linux 一书系统管理员有一个类似于第六个提示中的示例,其中变量不仅前面加上
我想在已安装 Python 2.7 的 Windows XP 计算机上运行 IPython(版本 0.12)。 我通过 Windows 二进制安装程序安装,但安装后 IPython 没有显示在菜单中,
IPython 中是否有自动关闭方括号、引号、圆括号等的选项? 我希望有一个类似于 gedit 插件中的功能。 最佳答案 通过调整 ~/.inputrc 可以让应用程序(包括 IPython)使用 r
我正在使用 IPython Web 笔记本,每个 block 之前都有一个提示编号,例如“In [68]:”。这个提示号码的用途是什么?你能用它做任何事吗?您可以/应该重置它吗? 最佳答案 IPyth
我升级到 iPython 3.0.0(Python 3.4;使用 Anaconda 环境;Mac OSX 10.9.5),打开新的 iPython Notebook session 的行为似乎发生了变
我希望能找到更多关于以下内容的文档: From one computer: C:\Python>ipython notebook opens the browser as 'IPython Noteb
我正在尝试在我的 IPython 笔记本中上传一个大小为 500MB 的网络日志文件。但是我收到错误消息“无法上传文件 >25Mb”。 有什么方法可以克服这个错误。任何帮助将不胜感激。 谢谢。 最佳答
简单地说,魔术函数 %precision 不考虑简单变量输出的浮点精度。 #Configure matplotlib to run on the browser %matplotlib noteboo
安装 IPython 后,我立即创建了一个默认配置文件: $ ipython profile create 然后,我创建了另一个,这次我给它起了名字testing: $ ipython profile
我已经尝试使用命令来拆分单元格“m -”,但它不起作用。使用 esc 或 fn 键作为修饰符时,所有键命令的重置都可以正常工作。我也处于正确的模式(edititng 模式)。 最佳答案 在编辑模式下,
我想将 ipython 笔记本中的字体类型更改为 consolas 字体类型。我首先使用 ipython profile create 但是,我不清楚在此配置文件中指定字体类型的语法。 任何帮助表示赞
我正在使用 iPython 命令行界面,经过一些操作后,我想将操作历史记录保存到笔记本文件中。但我从一开始就没有使用 iPython notebook。我还能做到吗? 最佳答案 来自@Thomas K
我是一名优秀的程序员,十分优秀!