So far, we have updated the curve when the slider value changed and used the method on_changed for this. A complicated graphical output might take some computing time to update. In such a case, you would like to design the GUI in such a way that first, the curve parameters are set by sliders, and then a button is pressed to initiate the updating of the curve.
This can be achieved by the Button widget:
from matplotlib.widgets import Button
button_ax = axes([0.85, 0.01, 0.05, 0.05]) # axes for update button
btn = Button(button_ax, 'Update', hovercolor='red')
The coordinates in this example are set in such a way that the button is located under the two sliders. It is labeled by Update and its color turns to red when the mouse is placed over the button.
This widget has a method, on_clicked, that is used instead of the slider method on_changed:
def update(event):
lines.set_ydata(sld_amp.val*sin(2.*pi*sld_omega...