iPython:类似Manipulate的命令

时间:2013-11-01 17:21:37

标签: python wolfram-mathematica ipython ipython-notebook sage

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

For exampleManipulate[n, {n, 1, 20}] 显示一个滑块,可以通过该滑块改变n的值。

是否有任何简单的方法(例如魔法或装饰器,like in SAGE)在IPython笔记本中获得相同的结果?

2 个答案:

答案 0 :(得分:18)

<强>更新
这是在IPython 2.0(2014年4月1日发布)中添加的,它被称为Interactive Widgets,适用于网络笔记本。

原始回答
这是2.0的持续工作(12月发布的东西)看看YouTube上的IPython-dev会议,看看进展情况。 last meeting from oct 21 at 28min-ish有一个John的小部件演示,然后是Brian的interact

答案 1 :(得分:5)

我不确定这是否能满足您的所有需求,因为它仍然是实验性的,但似乎按照您的要求行事 - 请查看Jake VanderPlas的static interactive widgets

我做的是如何运行:

获取源代码并安装:

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

启动ipython笔记本并试用example.ipynb目录中的笔记本ipywidgets

还有另一种交互式可视化,其中可以使用平移,缩放和元数据(可能更多)。它是由同一作者在他的博客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个有吸引力的示例在博客中。

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

我确实同意一个@interact装饰者,这很好。