20

Manipulate[]在 Wolfram Mathematica 中,我可以使用命令交互式地修改参数的值。

例如Manipulate[n, {n, 1, 20}] 显示一个滑块,通过它可以改变 的值n

是否有任何简单的方法(即像魔法或装饰器,如在 SAGE 中)在 IPython 笔记本中实现相同的结果?

4

2 回答 2

19

更新
这是在 IPython 2.0(2014 年 4 月 1 日发布)中添加的,它被称为交互式小部件,适用于网络笔记本。

原始答案
这是 2.0 的持续工作(12 月发布一些东西)看看 YouTube 上的 IPython-dev 会议以了解进展。10 月 21 日 28 分钟的最后一次会议interact由 John和 Brian进行了小部件演示。

于 2013-11-01T17:53:25.977 回答
6

我不确定这是否会满足您的所有需求,因为它仍处于试验阶段,但似乎可以满足您的要求 - 查看 Jake VanderPlas 的静态交互式小部件

我为跑步所做的事情如下:

获取源码并安装:

git clone https://github.com/jakevdp/ipywidgets
pip install ./ipywidgets

启动一个 ipython notebook 并example.ipynbipywidgets目录中使用 notebook

还有另一种类型的交互式可视化,其中可以使用平移、缩放和元数据(可能更多)。它由同一位作者撰写,并在他的博客D3 Plugins: Truly Interactive Matplotlib In Your Browser中进行了报道。

还有一些不错的文档:MPLD3: Bringing Matplotlib to the Browser

为了试验它,我或多或少做了同样的事情:

git clone https://github.com/jakevdp/mpld3
pip install ./mpld3/

现在可以运行create_example.py脚本,或者更好的是,启动ipython notebook并使用提供mpld3/notebooks/mpld3_demo.ipynb的以及mpld3_plugins博客中发布的有吸引力的示例。

值得注意的是,我使用的是 Python 的 Anaconda 发行版,其中包括 Jinja2;据我所知 Jinja2 是 mpld3 的要求。

我同意@interact一个圣人装饰师会很好。

于 2014-02-19T20:29:21.620 回答