Как я и говорил, в Jupyter Notebook очень много всяких удобностей. В частности в блокнот можно добавить элементы управления, такие как:
- Слайдер для выбора значения числа
- Текстовое поле для ввода чисел или строк
- Выпадающий список выбора
- Чекбоксы (галочка да/нет)
- Выбор даты
- Выбор цвета и другие…
Установка виджетов (если еще не установлены):
pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension
Или через conda одной командой:
conda install -c conda-forge ipywidgets
📎 Пример. Нарисуем синусоиду с изменяемой частотой и фазой:
%matplotlib inline import numpy as np import matplotlib.pyplot as plt from ipywidgets import interact @interact(f=(1, 5, 0.1), phase=(0, 3.14, 0.1)) def plot_f(f, phase): x = np.linspace(0, 10, 100) y = np.sin(f * x + phase) plt.plot(x, y, 'r') plt.show()
Мы делаем интерактивными параметры f и phase. Их имена совпадают с аргументами обернутой функции plot_f(f, phase). А значения — кортеж вида (min, max, step), т.е. минимальное значение, максимальное и шаг слайдера. Как только мы изменим положение движков, то график будет автоматически перерисован.
