可以使用ipywidgets生成动态绘制的控件,该库中用于动态绘制的控件主要有:
- Play控件:有播放,暂停和循环播放三个按键
- Slider控件:滑动条控件,区分IntSlider表示整型值滑块,FloatSlider表示实型值滑块,SelectionSlider表示离散值滑块,另外相应还有IntRangeSlider、FloatRangeSlider和SelectionRangeSlider,可以生成一个有两个值的元组
进行动态绘图的步骤如下:
- 编写单步绘制函数,如编写一个正弦单步绘制函数如下所示
import numpy as np
import matplotlib.pyplot as plt
import ipywidgets as widgets
steps = 100
xs = np.linspace(0, np.pi, steps)
ys = np.sin(xs)
# 定义绘图函数
def plot_sine_curve(x):
_, ax = plt.subplots(dpi=100)
ax.plot(xs[:x], ys[:x])
ax.grid()
ax.set_xlim(0, np.pi)
ax.set_ylim(0, 1)
plt.show()
- 如果使用手动控制绘制进度,可使用滑块生成单步绘图函数所需的参数
slider = widgets.IntSlider(value=0, min=0, max=steps, step=1)
- 如果需要自动绘制,可使用Play控件生成单步绘图所需的参数
#interval参数指定两步间隔时间,单位是毫秒
play = widgets.Play(value=0, min=0, max=steps, step=1, interval=200)
- 将上述控件与单步绘制函数绑定,实现控件生成的值传递给单步绘制函数的参数
#下面第一个参数为单步绘制的函数名,第二个参数中x需与单步绘制函数的参数名一致,slider是的控件对象名称
interactive_plot = widgets.interactive(plot_sine_curve, x=slider)
- 显示这个交互绘制图
interactive_plot
644

被折叠的 条评论
为什么被折叠?



