Bonjour,
Je m'inspire du code du site de matplotlib:
https://matplotlib.org/3.1.0/gallery...ider_demo.html
Dans mon programme, un point suit une sinusoïde (en affichant les positions successives) à l'aide de la fonction 'scatter' mais les curseurs tels qu'ils sont utilisés sur le site de matplotlib n'ont aucune incidence sur le graphe. En ajoutant la fonction 'scatter', je n'arrive pas à relier amplitude et fréquence aux curseurs afin de modifier "en temps réel" les paramètres de la sinusoïde.
Merci pour vos réponses.
Code:
Code:import numpy as np import matplotlib.pyplot as plt from matplotlib.widgets import Slider, Button, RadioButtons # fig, ax = plt.subplots() # plt.subplots_adjust(left=0.25, bottom=0.25) fig = plt.figure() ax = fig.add_subplot(111) t = np.arange(0.0, 1.0, 0.01) a0 = 5 f0 = 3 delta_f = 5.0 s = a0 * np.sin(2 * np.pi * f0 * t) plt.axis([0, 1, -10, 10]) axcolor = 'lightgoldenrodyellow' axfreq = plt.axes([0.25, 0.1, 0.65, 0.03], facecolor=axcolor) axamp = plt.axes([0.25, 0.15, 0.65, 0.03], facecolor=axcolor) sfreq = Slider(axfreq, 'Freq', 0.1, 30.0, valinit=f0, valstep=delta_f) samp = Slider(axamp, 'Amp', 0.1, 10.0, valinit=a0) 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) resetax = plt.axes([0.8, 0.025, 0.1, 0.04]) button = Button(resetax, 'Reset', color=axcolor, hovercolor='0.975') def reset(event): sfreq.reset() samp.reset() button.on_clicked(reset) rax = plt.axes([0.025, 0.5, 0.15, 0.15], facecolor=axcolor) radio = RadioButtons(rax, ('red', 'blue', 'green'), active=0) def colorfunc(label): l.set_color(label) fig.canvas.draw_idle() radio.on_clicked(colorfunc) for i in range(1,100): x = t[i] s = a0 * np.sin(2 * np.pi * f0 * x) c = ax.scatter(x, s, c = 'red') x = t[i-1] s = a0 * np.sin(2 * np.pi * f0 * x) c = ax.scatter(x, s, c = 'white') plt.pause(0.05) plt.show()
-----