IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

GUI Python Discussion :

mise a jour graph MatplotLib


Sujet :

GUI Python

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 15
    Points
    15
    Par défaut 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 : 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
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Citation Envoyé par Mike1979 Voir le message
    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.
    Trouver des codes qui utilisent animate est assez facile... on peut partir de celui-ci... mais quelle est la question?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    J'aurais voulu une solution sans la fonction animate.

    Dans mon cas, je met à jour le graph à la fin du thread. donc pas besoin d'un appel de fonction tous les x seconde via l'argument interval.

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Dans l'article/cours déjà mentionné, vous avez aussi un exemple sans animate...
    Après, si ce n'est pas ce que vous souhaitez, chercher par vous même vous permettrait de trouver plus facilement.
    Après que si les données sont produites par un thread ou par un simple calcul, la mise à jour du graphique se fait de la même façon: chercher les nouvelles données toutes les x secondes pour les ajouter au graphique peu importe comment elles ont été produites.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [Python 3.X] Changement d'intitulé : tkinter matplotlib mise à jour graphe
    Par marco056 dans le forum Tkinter
    Réponses: 10
    Dernier message: 19/10/2017, 21h26
  2. [XL-2013] Mise à jour graph automatique
    Par addesign dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 09/07/2015, 09h57
  3. Mise a jour graph automatique via macro vba
    Par undo74 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/06/2015, 12h10
  4. [XL-2007] Mise a jour graphe automatique apres choix de données
    Par glassgreen13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 13/07/2010, 17h27
  5. Mise a jour de graphe chaque semaine.
    Par ekynoxx dans le forum Excel
    Réponses: 1
    Dernier message: 19/07/2007, 13h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo