Jupyter Play виджет пропускает шаги

Обновление: я немного упростил свой первоначальный вопрос.

Я хочу создать анимированный сюжет, но моя реализация - пропуск кадров.

x = np.arange(0,5,0.1)
y = np.cos(3*x)

def f(i):
    plt.plot(x[:i],y[:i]);
    plt.gca().axis([0,5,-1,1])
    plt.gca().set_title(f'{i}')

interactive(f, i=Play(value=0, min=0, max=50, step=1))

Вместо желаемого размера шага (1) он воспроизводится со скоростью около 5 шагов на кадр.

Поведение происходит как на ноутбуке, так и на jupyterlab, а также на внутреннем и внешнем интерфейсах ноутбука (%matplotlib notebook)

1 ответ

Я думаю, что это связано со временем, затраченным на выполнение функции построения графика. Попробуй изменить interval между графиками, выглядит так, как указано в миллисекундах.

%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import *

x = np.arange(0,5,0.1)
y = np.cos(3*x)

def f(i):
    plt.plot(x[:i],y[:i]);
    plt.gca().axis([0,5,-1,1])
    plt.gca().set_title(f'{i}')

interactive(f, i=Play(value=0, min=0, max=50, step=1, interval=500))

h ttps://stackru.com/images/dfe64e72fb590d52249792ed7c231a691183dcb0.gif

Другие вопросы по тегам