iPython:类似Manipulate的命令

lam*_*808 18 python wolfram-mathematica ipython sage ipython-notebook

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

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

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

Mat*_*att 18

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

原始答案
这是2.0的持续工作(12月发布的东西)看看YouTube上的IPython-dev会议,看看进展情况.从28点28分到28分钟最后一次会议由约翰interact和Brian 提供了一个小部件演示.


eld*_*d-a 5

我不确定这是否能满足您的所有需求,因为它仍然是实验性的,但似乎可以按照您的要求进行操作 - 查看Jake VanderPlas的静态交互式小部件.

我做的是如何运行如下:

获取源代码并安装:

git clone https://github.com/jakevdp/ipywidgets
pip install ./ipywidgets
Run Code Online (Sandbox Code Playgroud)

启动ipython笔记本并example.ipynbipywidgets目录中试用笔记本

还有另一种类型的交互式可视化,其中可以使用平移,缩放和元数据(可能更多).它是由同一作者在他的博客中报道的D3插件:在浏览器中真正的交互式Matplotlib.

还有很好的文档:MPLD3:将Matplotlib引入浏览器

为了试验它我做了或多或少相同:

git clone https://github.com/jakevdp/mpld3
pip install ./mpld3/
Run Code Online (Sandbox Code Playgroud)

现在可以运行create_example.py脚本了,甚至更好,开始ipython notebook使用提供的mpld3/notebooks/mpld3_demo.ipynb以及mpld3_plugins在博客中发布的有吸引力的示例.

值得注意的是,我正在使用包含Jinja2的蟒蛇的Anaconda发行版; 据我所知,Jinja2是mpld3的要求.

我确实同意一个@interact装饰者和一个圣人会很好.