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
|
import matplotlib.pyplot as plt
#--------------------------------------------------------------------------------------------------------
# Classe de construction de graphique
#--------------------------------------------------------------------------------------------------------
class DrawGraph():
def __init__(self):
self.values=[0]
def add_point(self,title,new_value,histo_len=5,fig_num=1):
#On regarde si pour la figure demander, le vecteur de point exisite déja
#Si ce n'est pas le cas, on le créer. Le '+1' est du a la numerotation des listes qui commencent a '0'
#et a '1' pour les figures de Matplotlib. La case self.values[0] n'est donc jamais utilisée
if len(self.values)<fig_num+1:
self.values.append([])
#Si le vecteur de point est plus petit que la taille max du scrolle, on ajoute le point
if len(self.values[fig_num])<histo_len:
self.values[fig_num].append(new_value)
#sinon, on efface le premier point et on ajoute le suivant
else:
del self.values[fig_num][0]
self.values[fig_num].append(new_value)
#Construction du graphique avec matplotlib
plt.figure(fig_num)
plt.interactive(True)
plt.clf()
x=range(len(self.values[fig_num]))
y=self.values[fig_num]
plt.plot(x,y)
plt.title(title.upper()+' vs time')
plt.xlabel('time')
plt.ylabel(title.upper())
plt.draw()
#--------------------------------------------------------------------------------------------------------
# Fonction qui construit le graphique
#--------------------------------------------------------------------------------------------------------
def totorun(x):
y=x**2+2*x+3
y2=x**2-2*x+3
graph_ber.add_point('toto',y,100,1)
graph_ber.add_point('toto_2',y2,100,2)
#--------------------------------------------------------------------------------------------------------
# Main
#--------------------------------------------------------------------------------------------------------
graph_ber=DrawGraph() #Instanciation de l'objet
x=0
while x<100:
totorun(x) #On construit les deux courbes
x=x+1 |
Partager