我想通过Jupyterlab中的小部件与之交互。 我安装了manual中所述的Widgets扩展。
Anaconda告诉我在我的环境中安装了ipywidgets
和widgetsnbextension
。
为了掌握该过程,我遵循了一个教程。执行代码时,出现错误消息
“ Javascript错误:未定义IPython”。
我试图将magic命令更改为%matplotlib内联,这将构建一个空图,其中不显示任何曲线。
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)
这将产生一个正弦曲线图,可通过滑块进行交互以改变安培数,相位和频率。
我不知道如何尝试使其运行。
答案 0 :(得分:0)
快速更新: 我不知道我之前尝试过的代码有什么问题,但是我发现了另一个有效且更简单的示例:
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))
我现在将使用这个示例作为模板来编写自己的代码。