Tracer d'une courbe en temps réel sous python
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

Tracer d'une courbe en temps réel sous python



  1. #1
    invited820ffdc

    Smile Tracer d'une courbe en temps réel sous python


    ------

    Évolution de la température en fonction du temps :

    Bonjour, voilà mon problème j'aimerai pouvoir afficher ma courbe de température en temps réèl dans mon interface, il me faut donc une visualisation dynamique pour afficher chaque points de la température en fonction du temps, mais je ne sais pas comment faire.

    Quelqu’un sait comment activer l’option dynamique avec matplotlib.pyplot ?

    Dans mon code, j'exporte ma courbe en image et je la lis ensuite dans l'interface, cette solution ne me plais pas du tout, il y a surement plus pratique. Je simule la température par une variable mesure qui s'incrémente mais je mettrai le capteur ensuite.

    Voici mon code (il fonctionne) :

    Code:
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    import serial
    import matplotlib.pyplot as plt
     
    import RPi.GPIO as GPIO
    import time
     
    import gtk
    import gobject
    import pygtk
     
    def main():
     
    #**** affichage gtk *******
        global ma_fenetre
        global image_bat
         
        gobject.timeout_add(2000,lecture_temp)
         
    #**** Interface Home machine (IHM) ou Graphic User Interface (GUI)*******
         
        # -1- Creation de la fenetre principale :  ma_fenetre  *******************
        ma_fenetre=gtk.Window()
        ma_fenetre.set_title('Chargeur connecté')
        ma_fenetre.resize(400,200)
        ma_fenetre.connect("destroy",gtk.main_quit)
        ma_fenetre.show
         
        # -2- Creation des conteneurs :
        # conteneur_general
        conteneur_general=gtk.Table(rows=1,columns=1,homogeneous=True)
        # conteneur_image
        conteneur_image=gtk.Table(rows=1,columns=1,homogeneous=False)
     
        # -3- Creation des widgets labels,  image et  boutons *******************
         
        #Pour visualiser les labels bouton avec les images de gtk.STOCK
        settings=gtk.settings_get_default()
        settings.props.gtk_button_images = True
         
        image_bat=gtk.Image()
        image_bat.set_from_file("courbe_test.png")
         
    #****************************************************************************
    # -4- mise en page des 2 boutons , de l image , de l etat volet et des 6 labels
    #****************************************************************************
        #attacher les widgets  image
        conteneur_image.attach(image_bat,0,1,0,1,gtk.SHRINK,gtk.SHRINK,5,5)
         
        # attacher les conteneurs suivants dans le conteneur_general
        # conteneur_image
        conteneur_general.attach(conteneur_image,0,1,0,1,gtk.SHRINK,gtk.SHRINK,5,5)
         
        # ajouter a      'ma_fenetre'    le conteneur_general
        ma_fenetre.add(conteneur_general)
        # -5- afficher ma_fenetre dans sa totalité  
        ma_fenetre.show_all()
        # -6- lancer gtk.main()
        gtk.main()
         
        valeurs=[]                         
        temps=[]
      
        plt.style.use('bmh')
        plt.ylabel("Température")
        plt.xlabel("Temps en seconde")
      
        plt.ion()           # on entre en mode interactif
        start=time.time()   # mesure de l'instant initial
      
        mesure=0
        i=0
        while (i<5):
            mesure=mesure+1             # lit la donnee sur la laison serie
            valeurs.append(mesure)      # ajout de mesure a la liste des valeurs
            instant=time.time()-start   # calcul du temps ecoule depuis l'instant initial
            temps.append(instant)       # ajout de instant a la liste des temps
            print mesure,instant        # affiche dans la console les coordonnees du point
            plt.plot(temps,valeurs,marker='o')  # trace la courbe
            plt.draw()                  # affiche la courbe en mode interactif
            i=i+1
            time.sleep(1)
            plt.savefig("courbe_test.png")
            #plt.show()
     
        plt.ioff()      # on quitte le mode interactif pour rendre la main a l'utilisateur sur la courbe
        plt.show()      # afficher la courbe
         
        return 0
     
    def  lecture_temp():
        global image_bat
        global no_parcours
         
        image_bat=gtk.Image()
        image_bat.set_from_file("courbe_test.png")
         
        return (1)
     
    #************************************************
    if __name__=='__main__' :
        main()
    Merci de votre aide.

    -----

  2. #2
    gienas
    Modérateur

    Re : Tracer d'une courbe en temps réel sous python

    Bonjour antonioklm et tout le groupe

    Bienvenue sur le forum.

    Citation Envoyé par antonioklm Voir le message
    Évolution de la température en fonction du temps : ...
    Le sondage, qui était une erreur de coche a été supprimé.

Discussions similaires

  1. Réponses: 7
    Dernier message: 29/04/2016, 10h42
  2. Tracer une courbe sous Maple ou Maxima
    Par DarK MaLaK dans le forum Physique
    Réponses: 0
    Dernier message: 25/11/2012, 20h22
  3. Tracer de courbe sous matlab
    Par invitebd754bec dans le forum Logiciel - Software - Open Source
    Réponses: 8
    Dernier message: 30/08/2010, 15h54
  4. tracer une courbe sous MATLAB
    Par invitec35bc9ea dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 25/05/2008, 22h06