Добрейшего вечера
Возникла проблема с программой на Python
При запуске стирает полученный график, после удаления очистки вывода из цикла график начал отображаться, но без анимации.
В то же время при запуске через Voila выдает ошибку
"JavaScript output is disabled in JupyterLab"
Может кто-то подсказать в чем может быть проблема?
Заранее сердечное спасибо
Код:
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
from IPython.display import display, clear_output
from time import sleep
from ipywidgets import widgets
t_disc = widgets.Label('Границы диапазона')
t_range = widgets.IntRangeSlider(value = [0,10],min = 0, max = 50)
# t_h = widgets.HBox([t_disc, t_range])
m_disc = widgets.Label('Число разбиений')
m_val = widgets.IntSlider(value = 501, min = 1, max = 1001)
# m_h = widgets.HBox([m_disc, m_val])
step_disc = widgets.Label('Интервал между кадрами')
step = widgets.FloatSlider(min = 0.0, max = 1.0,value = 0.0, step=0.01)
# step_h = widgets.HBox([step_disc, step])
build = widgets.Button(description = 'Выполнить')
out = widgets.Output()
inter = widgets.VBox([t_disc,t_range, m_disc, m_val, step_disc, step, build])
box = widgets.HBox([inter, out])
N = 100
def on_button_clicked(d):
# global anim
interval = 0.0001
m = m_val.value
t0 = t_range.value[0]
t1 = t_range.value[1]
tstep = step.value
y = []
t = np.linspace(t0, t1, num = m)
def y_count(t, n):
k = np.arange(n+1)
yT = (4/np.pi)*np.sum((np.sinc(2*np.pi*(2*k - 1)*t))/(2*k - 1))
return yT
for i in range(m):
y.append(y_count(t[i],N))
with out:
for i in range(m):
#clear_output(wait=True)
plt.plot(t[:i+1], y[:i+1], 'k-', lw=2)
plt.xlim(t[0], t[-1])
plt.ylim(-0.25,3)
plt.show()
sleep(tstep)
build.on_click(on_button_clicked)
display(box)