如何使用ipywidgets和matplotlib实现Jupyter中可交互的正弦波频率控制绘图
Jupyter Notebook 交互式正弦波频率控制可运行示例
以下代码可直接复制到单个Jupyter Notebook单元格中运行,无需额外配置,拖动生成的滑块即可实时调节正弦波频率,不会出现旧图堆叠问题:
import ipywidgets as widgets from ipywidgets import interact import matplotlib.pyplot as plt import numpy as np %matplotlib inline def update_sine(frequency = 1.0): # 清空当前画布 plt.clf() # 生成坐标数据 x = np.linspace(0, 2 * np.pi, 200) y = np.sin(frequency * x) # 绘图配置 plt.plot(x, y, linewidth=2) plt.grid(alpha=0.3) plt.xlabel('x') plt.ylabel('y') plt.title(f'y = sin({frequency}x)') plt.ylim(-1.1, 1.1) plt.show() # 绑定滑块交互控件 interact( update_sine, frequency=widgets.FloatSlider( min=0.1, max=10, step=0.1, value=1.0, description='频率:' ) );
运行效果说明:
- 滑块默认调节范围为0.1~10,步长0.1,可直接修改
FloatSlider的对应参数自定义调节规则 - 每次交互会自动清空上一张画布内容,不会出现图像堆叠
- 依赖仅需ipywidgets、matplotlib、numpy三个常用库,通用Jupyter环境均可直接运行
内容的提问来源于stack exchange,提问作者Kiwiheretic
相关产品推荐
相关产品推荐

