mise a jour graph MatplotLib
Bonjour à tous.
Je développe une petite interface IHM pour un radiotélescope.
J'aimerais afficher un graph des valeurs au fur et a mesure de l'acquisition des donnée.
L'acquisition se fait tous les x secondes via un Thread et un timer
Je souhaiterais la mise a jour du graph a la fin de chaque Thread.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| # Create figure for plotting
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
xs = []
ysbdf = []
ybrut = []
ynet = []
# Read temperature (Celsius) from TMP102
Yb = adc1.read_adc(3, gain=GAIN)*GADC1A3
YN = adc1.read_adc(1, gain=GAIN)*GADC1A1
YB = adc1.read_adc(2, gain=GAIN)*GADC1A2
# Add x and y to lists
xs.append(dt.datetime.now().strftime('%H:%M:%S.%f'))
ysbdf.append(Yb)
ybrut.append(YB)
ynet.append(YN)
# Draw plot
ax.plot(xs, ysbdf, color='r', label='BDF')
ax.plot(xs, ynet, color='g', label='Net')
ax.plot(xs, ybrut, color='b', label='Brut')
# Format plot
plt.xticks(rotation=45, ha='right')
plt.subplots_adjust(bottom=0.30)
plt.title('TEST')
plt.ylabel('Volt')
# Draw the graph
plt.show() |
J'ai tester le code ci-dessus qui fonctionne très bien quand on l'appelle un seul fois.
J'ai pas tester la ligne de code suivante:
Code:
ani = animation.FuncAnimation(fig, animate, fargs=(ys,), interval=50, blit=True)
Ce qui m'interroge avec cette ligne de code c'est l'argument interval qui appelle la fonction animate toute les 50ms dans ce cas. Dans la documentation c'est mini 200ms par défaut.
Auriez vous une piste, un bout de code pour m'aider?
Merci d'avance.