iPython: 操作类似于Manipulate的命令

20
在 Wolfram Mathematica 中,我可以使用 Manipulate[] 命令交互地修改参数的值。 例如, Manipulate[n, {n, 1, 20}] 显示了一个滑块,通过它可以改变 n 的值。
在 IPython 笔记本中是否有一种简单的方法(即类似于魔法或装饰器,就像 SAGE 中那样)来实现相同的结果?

我不确定,但是Sage在内部与IPython相同,因此您可能可以相对容易地调整那段代码。 - Corley Brigman
2个回答

18

6

我不确定这个是否完全能满足您的需求,因为它仍处于实验阶段,但看起来可以做到您所要求的 - 可以查看Jake VanderPlas的静态交互式小部件

我运行的步骤如下:

获取源代码并安装:

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

启动一个ipython笔记本并在ipywidgets目录下尝试笔记本example.ipynb

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

还有很好的文档:MPLD3:将Matplotlib带到浏览器中

为了尝试它,我做了更多或更少相同的事情:

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的要求之一。

我同意使用类似sage的@interact装饰器会很不错。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接