Метки

,

Всем любителям Wolfram Mathematica знаком очень удобный интерфейс для демонстраций и поиска нужных параметров — функция Manipulate

3

Оказывается, в альтернативной реализации ноутбуков Jupyter для языка программирования Python есть аналогичный функционал, реализованный в качестве виджетов на JavaScript.

Прежде, чем наслаждаться всем доступным функционалом, мне понадобилось включить соответствующее расширение (и без админских прав оно не работало):

sudo jupyter nbextension enable --py --sys-prefix widgetsnbextension

В последних версиях Jupyter для дальнейшей работы нужно подключить модуль ipywidgets. Дальнейшее покажу на примере слайдера, такого же, как на скриншоте Wolfram Mathematica выше.

Для начала импортируем две функции, interact и FloatSlider (для справки, есть также и IntSlider). В качестве первого примера будем использовать функцию, которая просто возвращает квадрат аргумента:

from ipywidgets import interact, FloatSlider
def foo(x):
return x**2;

И задействуем слайдер с помощью interact:

interact(foo, x = FloatSlider(value = 2
, min = -5
, max = 5
, step = 0.1
, description = 'Square'
))

Результат:

screenshot_20170103_203045

В примере выше для наглядности приведена явная установка параметров слайдера, но можно ничего и не указывать.

Еще один пример с построением графика:

import matplotlib.pyplot as plt
%matplotlib inline
from numpy import sin, linspace
def bar(omega, Tmax):
t = linspace(0, Tmax, 1000)
y = sin(omega*t)
plt.plot(t, y)
plt.show()
interact(bar, omega=FloatSlider(min=0.1, max=10), Tmax=FloatSlider())

screenshot_20170103_203855

Больше прикольных примеров — в документации.

Реклама