Метка: pyplot

Интерактивность в Jupyter Notebook

Как я и говорил, в 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), т.е. минимальное значение, максимальное и шаг слайдера. Как только мы изменим положение движков, то график будет автоматически перерисован.

Пример интерактивного графика в Jupyter Notebook