Bonjour,
Actuellement en cours de développement d'un script pour récupérer des données via une commande SSH + script en local, j'aimerai faire l'affichage des informations (Numérique) sur un graphique en mode dynamique avec rafraîchissement auto.

Déja fonctionnelle :
- Connexion ssh + mise ne vairable des informations .
- Affichage des données après scan via regex pour centrer les informations utiles.

Proposition :
- Test avec Matplotlib pour faire un affichage dynamique mais le graphique n'évolue pas.
- Test avec sauvegarde du graphique en png puis lecture des image, mais idem pas d'affichage. L'affichage évolutif est possible lorsque j'ouvre une image sur l'explorateur.

Code d'ouverture :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
def start(ip, cmd):
            proc = Popen(
                TEMPLATE.format(ip, ip, cmd),
                stdout=PIPE, stderr=STDOUT, text=True, shell=True,
               )
            return proc
Code de récupération des informations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
while 1:
            text = test.stdout.readline()[:-1]
            reg = re.findall(r"current : (-[0-9].[0-9]+|[0-9].[0-9]+)", text)
            if reg : current1.append(reg[0])
Code de création d'images :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
    plt.plot(current1)
 
            plt.savefig(str(directory )+ "/" + str(j) +".png")
            j+=1
            if j ==10: j =0
Affichage :

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
21
22
23
24
25
26
27
directory = Path(__file__).parent
 
 
fenetre = Tk()
 
im = cv2.imread(str(directory )+ "/1.png")
h,w,c = im.shape
x = h*1.33
y = w*0.75
width = fenetre.winfo_screenwidth()
height = fenetre.winfo_screenheight()
#fenetre.configure(width=width//2, height=height//2)
fenetre.configure(width=x, height=y)
canvas = Canvas(fenetre, width=x, height=y)
 
i = 0
j = 0
while TRUE:
 
 
    photo = PhotoImage(file=str(directory )+ "/" + str(j) +".png")
    canvas.create_image(0, 0,anchor = NW,  image=photo)
    j +=1
    if j ==10: j=0
 
    canvas.pack()
    fenetre.mainloop()
Questions :
- Est ce que Matplot lib est bien adapté pour faire cela ?
- Existe-t-il une libriarie plus adaptée?
- N'étant pas expert en python, il est fort probable que ma démarche pour réaliser cela ne soit plus la plus optimal, comment puis-je corriger cela?

D'avance merci.