Notiz
Klicken Sie hier , um den vollständigen Beispielcode herunterzuladen
Schieberegler an diskreten Werten ausrichten #
valstep
Mit dem Argument können Sie Schiebereglerwerte an diskreten Werten ausrichten.
In diesem Beispiel ist der Schieberegler „Freq“ auf ein Vielfaches von Pi beschränkt, und der Schieberegler „Amp“ verwendet ein Array als valstep
Argument, um den ersten Teil seines Bereichs dichter abzutasten.
Ein Beispiel für die Verwendung von a zur Steuerung eines einzelnen Floats finden Sie unter Slider .Slider
Ein Beispiel für die Verwendung von a zum Definieren eines Wertebereichs finden Sie unter Schwellwerte für ein Bild mit RangeSlider festlegen .RangeSlider
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider, Button
t = np.arange(0.0, 1.0, 0.001)
a0 = 5
f0 = 3
s = a0 * np.sin(2 * np.pi * f0 * t)
fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.25)
l, = ax.plot(t, s, lw=2)
ax_freq = fig.add_axes([0.25, 0.1, 0.65, 0.03])
ax_amp = fig.add_axes([0.25, 0.15, 0.65, 0.03])
# define the values to use for snapping
allowed_amplitudes = np.concatenate([np.linspace(.1, 5, 100), [6, 7, 8, 9]])
# create the sliders
samp = Slider(
ax_amp, "Amp", 0.1, 9.0,
valinit=a0, valstep=allowed_amplitudes,
color="green"
)
sfreq = Slider(
ax_freq, "Freq", 0, 10*np.pi,
valinit=2*np.pi, valstep=np.pi,
initcolor='none' # Remove the line marking the valinit position.
)
def update(val):
amp = samp.val
freq = sfreq.val
l.set_ydata(amp*np.sin(2*np.pi*freq*t))
fig.canvas.draw_idle()
sfreq.on_changed(update)
samp.on_changed(update)
ax_reset = fig.add_axes([0.8, 0.025, 0.1, 0.04])
button = Button(ax_reset, 'Reset', hovercolor='0.975')
def reset(event):
sfreq.reset()
samp.reset()
button.on_clicked(reset)
plt.show()
Verweise
In diesem Beispiel wird die Verwendung der folgenden Funktionen, Methoden, Klassen und Module gezeigt: