matplotlib 3.5.1

>>> """
======
Slider
======

In this example, sliders are used to control the frequency and amplitude of
a sine wave.

See :doc:`/gallery/widgets/slider_snap_demo` for an example of having
the ``Slider`` snap to discrete values.

See :doc:`/gallery/widgets/range_slider` for an example of using
a ``RangeSlider`` to define a range of values.
"""
... import numpy as np
... import matplotlib.pyplot as plt
... from matplotlib.widgets import Slider, Button
... 
... 
... # The parametrized function to be plotted
... def f(t, amplitude, frequency):
...  return amplitude * np.sin(2 * np.pi * frequency * t)
... 
... t = np.linspace(0, 1, 1000)
... 
... # Define initial parameters
... init_amplitude = 5
... init_frequency = 3
... 
... # Create the figure and the line that we will manipulate
... fig, ax = plt.subplots()
... line, = plt.plot(t, f(t, init_amplitude, init_frequency), lw=2)
... ax.set_xlabel('Time [s]')
... 
... # adjust the main plot to make room for the sliders
... plt.subplots_adjust(left=0.25, bottom=0.25)
... 
... # Make a horizontal slider to control the frequency.
... axfreq = plt.axes([0.25, 0.1, 0.65, 0.03])
... freq_slider = Slider(
...  ax=axfreq,
...  label='Frequency [Hz]',
...  valmin=0.1,
...  valmax=30,
...  valinit=init_frequency,
... )
... 
... # Make a vertically oriented slider to control the amplitude
... axamp = plt.axes([0.1, 0.25, 0.0225, 0.63])
... amp_slider = Slider(
...  ax=axamp,
...  label="Amplitude",
...  valmin=0,
...  valmax=10,
...  valinit=init_amplitude,
...  orientation="vertical"
... )
... 
... 
... # The function to be called anytime a slider's value changes
... def update(val):
...  line.set_ydata(f(t, amp_slider.val, freq_slider.val))
...  fig.canvas.draw_idle()
... 
... 
... # register the update function with each slider
... freq_slider.on_changed(update)
... amp_slider.on_changed(update)
... 
... # Create a `matplotlib.widgets.Button` to reset the sliders to initial values.
... resetax = plt.axes([0.8, 0.025, 0.1, 0.04])
... button = Button(resetax, 'Reset', hovercolor='0.975')
... 
... 
... def reset(event):
...  freq_slider.reset()
...  amp_slider.reset()
... button.on_clicked(reset)
... 
... plt.show()
... 
... #############################################################################
... #
... # .. admonition:: References
... #
... # The use of the following functions, methods, classes and modules is shown
... # in this example:
... #
... # - `matplotlib.widgets.Button`
... # - `matplotlib.widgets.Slider`
...