Bonjour,
Mon problème consiste à la création d'un dessin qui devrait se mettre à jour toutes les 1.5 secondes.
Mon programme utilise Tkinter avec une classe qui gère le tout. Ne sachant pas où m'orienter pour le dessin,
j'ai utilisé matplotlib dans un premier temps.
Voici le code actuel :
J'ai dans ma classe créé un bouton qui m'appelle cette fonction draw. Pour le moment donc,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 def draw(self): fig = plt.figure() plt.grid(True) axes = plt.gca() axes.set_ylabel("pH") axes.set_xlabel("Temps") temp = [self.mypH - 3 + x/2. for x in range(14)] axes.set_yticks(temp) axes.set_ylim(self.mypH - 3, self.mypH + 3) tabx = [x * 1.5 for x in range(len(self.tab))] plt.plot(tabx, self.tab) plt.show()
je clique et il m'affiche le dessin avec les informations actuelles. Cependant, mon "self.tab" se
met à jour toutes les 1.5 secondes et j'aimerais bien que mon dessin en fasse de même tant qu'il
est lancé. J'ai creusé en essayant un code similaire au suivant :
Mais ici j'ai le souci que je ne peux plus fermer la fenêtre... Au début je n'avais pas mis le try-except
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 def draw(self): fig = plt.figure() ax = fig.add_subplot(111) li, = ax.plot([], []) # draw and show it fig.canvas.draw() plt.show(block=False) while True: try: li.set_xdata([x * 1.5 for x in range(14)]) li.set_ydata(self.tab) fig.canvas.draw() time.sleep(1.5) except KeyboardInterrupt: break
mais même en rajoutant celui-ci, rien n'y fait. J'aimerais juste cliquer sur la croix et que la fenêtre se
ferme.
J'espère avoir été clair.
Merci de votre aide.
Partager