Подтвердить что ты не робот

IPython: Манипулирующая команда

В Wolfram Mathematica я могу интерактивно изменять значение параметра с помощью команды Manipulate[].

Например, Manipulate[n, {n, 1, 20}] показывает ползунок, через который можно изменять значение n.

Есть ли какой-либо простой способ (например, что-то вроде магии или декоратора как в SAGE) для достижения такого же результата в ноутбуке IPython?

4b9b3361

Ответ 1

Обновление
Это было добавлено в IPython 2.0 (выпущено 1 апреля 2014 г.), оно называется Интерактивные виджеты и работает в веб-ноутбуках.

Оригинальный ответ
Это текущая работа для 2.0 (выпуск декабрь-то-иш). Посмотрите на встречу IPython-dev на YouTube, чтобы увидеть прогресс. последняя встреча с октября 21 в 28мин-иш содержит демонстрацию виджета от Джона, затем interact от Брайана.

Ответ 2

Я не уверен, будет ли это удовлетворять все ваши потребности, поскольку оно все еще экспериментально, но, похоже, делает то, о чем вы просили, - посмотрите на статические интерактивные виджеты Джейком VanderPlas.

Что я сделал для запуска, было следующее:

Получить источник и установить:

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

запустите ноутбук ipython и поэкспериментируйте с ноутбуком example.ipynb в каталоге ipywidgets

Существует другой тип интерактивной визуализации, в которой доступны панорамирование, масштабирование и метаданные (возможно, больше). Это тот же автор и сообщил в своем блоге плагины D3: действительно интерактивный Matplotlib в вашем браузере.

Есть также хорошие документы: MPLD3: перевод Matplotlib в браузер

Чтобы поэкспериментировать с ним, я сделал более или менее то же самое:

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

Теперь можно запустить create_example.py script, или даже лучше, запустите ipython notebook и сыграйте с предоставленным mpld3/notebooks/mpld3_demo.ipynb, а также с привлекательными примерами mpld3_plugins, опубликованными в блоге.

Возможно, стоит отметить, что я использую дистрибутив Anaconda из python, который включает Jinja2; насколько я знаю, Jinja2 является требованием для mpld3.

Я согласен, что декоратор @interact a la sage будет приятным.

Ответ 3

Существует также пакет, который называется Manipulate.py.