📅  最后修改于: 2023-12-03 14:49:43.293000             🧑  作者: Mango
在数据可视化中,滑块是非常有用的工具,用于调整数据的范围或窗口大小。 matplotlib
库中提供了多种类型的滑块控件,本文将介绍如何在 matplotlib 图形中添加垂直滑块。
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
fig, ax = plt.subplots()
plt.subplots_adjust(left=0.25, bottom=0.25)
在此处,我们创建一个新的 matplotlib 图形,并将其分配给变量 fig。我们还创建一个表示图形区域的 ax 对象,并使用 subplots_adjust
设置空白边框的大小。
t = np.arange(0.0, 1.0, 0.001)
s = np.sin(2*np.pi*5*t)
l, = plt.plot(t, s, lw=2)
在此处,我们通过 np.arange() 函数创建 x 轴数据,并通过 np.sin() 函数生成 y 轴数据。最后,我们使用 plt.plot() 函数绘制图形。
axcolor = 'lightgoldenrodyellow'
axfreq = plt.axes([0.25, 0.1, 0.65, 0.03], facecolor=axcolor)
sfreq = Slider(axfreq, 'Freq', 0.1, 30.0, valinit=5)
在此处,我们使用 plt.axes
函数创建一个新的坐标轴,并将其分配给变量 axfreq。我们还使用 Slider
函数创建了一个新的垂直滑块控件,可以通过设置 valinit
初始值和取值范围来进行调整。
def update(val):
freq = sfreq.val
l.set_ydata(np.sin(2*np.pi*freq*t))
fig.canvas.draw_idle()
sfreq.on_changed(update)
在此处,我们的回调函数 update
会在滑块的值更改时被调用。我们通过获取滑块的值并重新计算 y 轴数据来更新绘图。最后,我们使用 Canvas
对象的 draw_idle
函数更新图形。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
fig, ax = plt.subplots()
plt.subplots_adjust(left=0.25, bottom=0.25)
t = np.arange(0.0, 1.0, 0.001)
s = np.sin(2*np.pi*5*t)
l, = plt.plot(t, s, lw=2)
axcolor = 'lightgoldenrodyellow'
axfreq = plt.axes([0.25, 0.1, 0.65, 0.03], facecolor=axcolor)
sfreq = Slider(axfreq, 'Freq', 0.1, 30.0, valinit=5)
def update(val):
freq = sfreq.val
l.set_ydata(np.sin(2*np.pi*freq*t))
fig.canvas.draw_idle()
sfreq.on_changed(update)
plt.show()
以上是添加垂直滑块的简单步骤。我们可以使用 matplotlib 中的 RangeSlider
来添加区间滑块。滑块的功能取决于具体的需求,在实际应用中可以根据需求进行调整和定制。