Jupyter Play виджет пропускает шаги - PullRequest
0 голосов
/ 11 февраля 2019

Обновление: Я немного упростил свой исходный вопрос.

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

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))

enter image description here

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

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

1 Ответ

0 голосов
/ 22 февраля 2019

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

enter image description here

...