Python 我能';不要让Jupyterlab使绘图与小部件交互

Python 我能';不要让Jupyterlab使绘图与小部件交互,python,widget,jupyter-notebook,jupyter-lab,Python,Widget,Jupyter Notebook,Jupyter Lab,我有一些绘图,我想通过Jupyterlab中的小部件与之交互。 我安装了小部件扩展,如本文所述 Anaconda告诉我,ipywidgets和widgetsnbextension安装在我的环境中 为了掌握这个过程的诀窍,我遵循了一个教程。当执行代码时,我得到错误消息 “Javascript错误:未定义IPython” 我尝试将magic命令更改为%matplotlib inline,这将生成一个空绘图,不显示任何曲线 import ipywidgets as widgets from IPyth

我有一些绘图,我想通过Jupyterlab中的小部件与之交互。 我安装了小部件扩展,如本文所述

Anaconda告诉我,
ipywidgets
widgetsnbextension
安装在我的环境中

为了掌握这个过程的诀窍,我遵循了一个教程。当执行代码时,我得到错误消息

“Javascript错误:未定义IPython”

我尝试将magic命令更改为%matplotlib inline,这将生成一个空绘图,不显示任何曲线

import ipywidgets as widgets
from IPython.display import display
import matplotlib.pyplot as plt
import numpy as np

%matplotlib nbagg

x=np.linspace(0,2,1000)
fig, ax=plt.subplots(1,figsize=(10,4))
plt.suptitle('Sine Wave')

def update_plot(amp, phase, freq):
    '''
    this function linked to the sliders and 
    it replots the sine waves when the sliders are changed
    '''
    ax.clear()
    y = amp * np.sin(freq * 2 * np.pi * x + phase * 2 * np.pi)
    ax.plot(x,y)
    plt.show()


amp=widgets.FloatSlider(min=1,max=10,value=4,description='Amp')
phase=widgets.FloatSlider(min=0,max=5,value=0,description='Phase')
freq=widgets.FloatSlider(min=1,max=10,value=1,description='Freq')

widgets.interactive(update_plot, amp=amp, phase=phase, freq=freq)
这将提供一个正弦曲线图,可通过滑块进行交互,以改变振幅、相位和频率

我不知道如何才能让它运行。

快速更新: 我不知道我以前试过的代码有什么问题,但我发现了另一个更简单的例子:

from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
import matplotlib.pyplot as plt
%matplotlib inline

import numpy as np

def plot_func(freq):
    x = np.linspace(0, 2*np.pi,1000)
    y = np.sin(x * freq)
    plt.plot(x, y)

interact(plot_func, freq = widgets.FloatSlider(value=2.5, min=1, 
max=5.0,step=0.5))
现在,我将使用此示例作为模板来创建自己的代码。

快速更新: 我不知道我以前试过的代码有什么问题,但我发现了另一个更简单的例子:

from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
import matplotlib.pyplot as plt
%matplotlib inline

import numpy as np

def plot_func(freq):
    x = np.linspace(0, 2*np.pi,1000)
    y = np.sin(x * freq)
    plt.plot(x, y)

interact(plot_func, freq = widgets.FloatSlider(value=2.5, min=1, 
max=5.0,step=0.5))
现在,我将使用这个示例作为模板来生成自己的代码