In Wolfram Mathematica, I can interactively modify the value of a parameter by using the Manipulate[]
command.
For example, Manipulate[n, {n, 1, 20}]
shows a slider through which is possible to vary the value of n
.
Is there any simple way (i.e. something like a magic or a decorator, like in SAGE) to achieve the same result in the IPython notebook?
Update
This was added in IPython 2.0 (released Apr 1, 2014), it's called Interactive Widgets and works in web notebooks.
Original answer
This is ongoing work for 2.0 (release December something-ish) Have a look at the IPython-dev meeting on YouTube to see progress. The last meeting from oct 21 at 28min-ish has a widget demo by John then
interact
by Brian.I am not sure whether this would satisfy all your needs as it is still experimental, but seems to do what you asked for - look at static interactive widgets by Jake VanderPlas.
What I did to get running was the following:
Get the source and install:
start an ipython notebook and experiment with the notebook
example.ipynb
in theipywidgets
directoryThere's another type of interactive visualisation, where panning, zoom and meta-data are available (possibly more). It is by the same author and reported in his blog D3 Plugins: Truly Interactive Matplotlib In Your Browser.
There are also nice docs: MPLD3: Bringing Matplotlib to the Browser
To experiment with it I did more or less the same:
One can now run the
create_example.py
script, or even better, start anipython notebook
and play with the providedmpld3/notebooks/mpld3_demo.ipynb
as well as with the attractive examples ofmpld3_plugins
posted in the blog.It may be worth noting that I am using the Anaconda distro of python, which includes Jinja2; as far as I know Jinja2 is a requirement for mpld3.
I do agree that an
@interact
decorator a la sage would be nice.