在Wolfram Mathematica中,我可以使用Manipulate[]
命令以交互方式修改参数的值。
For example,Manipulate[n, {n, 1, 20}]
显示一个滑块,可以通过该滑块改变n
的值。
是否有任何简单的方法(例如魔法或装饰器,like in SAGE)在IPython笔记本中获得相同的结果?
答案 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
装饰者,这很好。