Logo Mon Club Elec

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTGraphMath

Le traitement des données mathématiques est une partie essentielle de la programmation informatique. PYQTGraphMath est un outil puissant qui permet aux développeurs de créer des applications graphiques et de traiter des données mathématiques. Dans cet article, nous allons examiner en détail les fonctionnalités de PYQTGraphMath et comment elles peuvent être utilisées pour créer des applications graphiques et traiter des données mathématiques. Nous verrons également comment PYQTGraphMath peut être utilisé pour créer des applications plus complexes et plus puissantes.

Affichage graphique et mathématique avec PyQt

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTGraphMath

Plusieurs librairies pour affichage graphique type scientifique ou mathématique sont disponibles et utilisables avec PyQt :

  • PyQwt : une librairie graphique dérivée de la version originale en C, Qwt. Cette librairie est actuellement obsolète et non maintenue, mais elle reste potentiellement utile en raison des widgets analogiques qu’elle propose et son utilisation facile avec QtDesigner.
  • Matplotlib : cette librairie est « The Must » de l’affichage graphique scientifique en Python, supportant notamment plusieurs environnement graphique dont PyQt. Une librairie incontournable qu’il faut connaître en raison de ses nombreuses possibilités avancées 2D et 3D. Cette librairie s’utilise également très facilement avec ipython. Par contre, cette librairie s’avère un peu lente pour des affichages temps réel. Intégration dans PyQt simple. Matplotlib est à privilégier dès lors que l’on souhaite réaliser des graphiques élaborés ( champs vectoriels, coordonnées polaires, etc… )
  • Pyqtgraph : Comme son nom l’indique, cette librairie est construite sur PyQt et son utilisation avec PyQt est donc naturelle. Cette librairie est plus simple dans ses possibilités que Matplotlib (ne supporte pas champs vectoriel, coordonnées polaires, etc..) mais propose aussi des choses qui n’existent pas avec matplotlib (notamment l’interactivité avec le graphique). Le point fort de Pyqtgraph : sa grande rapidité qui en fait la solution privilégiée pour des affichages temps-réel.

PyQt + Pyqtgraph : Afficher des courbes temps-réel et réaliser du calcul scientifique
PyQt + Qwt : afficher des graphiques analogiques et des courbes
PyQt + Matplotlib : Afficher des courbes mathématiques et réaliser du calcul scientifique?

PyQt + PyqtGraph : afficher des graphiques et des courbes

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTGraphMath

Tracé de courbes simples

Les bases

Affichages de courbes y=f(x)

  • Afficher une courbe de 1000 valeurs aléatoires simulant une série de données
  • Afficher/masquer plusieurs courbes simples dans un graphique pyqtgraph, sélectionnables par case à cocher *
  • Afficher une courbe à partir d’une série de valeurs chargées à partir d’un fichier texte ou saisies dans une zone texte, enregistrables dans un fichier texte
  • Définir la courbe à tracer à partir d’une formule saisie en zone texte, et enregistrer données dans fichier*

Exemples de courbes mathématiques

  • Exemple de courbe réelle : afficher la courbe du corps noir et la paramétrer à l’aide d’un slider

Affichage de courbes paramétriques y=f(t) et x=f(t)

  • Affichage d’une courbe paramétrique d’exemple * shell
  • Courbe de l’analemna

Paramétrage de l’interactivité du graphique

  • L’interactivité par défaut
  • Description du menu contextuel par défaut et des options disponibles
  • Exemple d’interactivité prédéfinie : voir affichage courbe simple
  • Afficher le point courant d’une courbe y=f(x) sous le curseur de la souris *
  • Afficher une croix de lignes sous la souris ainsi que le point courant d’une courbe *
  • Récupérer la valeur du point courant lors d’un clic souris *

Console intégrée

  • Interface PyQt intégrant graphique pyqtgraph et console dans une même GUI pour interactivité « en direct » avec le graphique*

Tracé de courbes avec timeline

  • Créer un graphique avec une timeline interactive *
  • Créer un graphique avec une timeline interactive à partir d’un fichier de données

Tracé de courbes « temps réel »

  • Affichage progressif d’une courbe *
  • Afficher une courbe à partir de valeurs reçues sur le port série (oscillo simple) *
  • Afficher une courbe à partir de valeurs reçues sur le port série, avec widgets de paramétrage des axes *
  • Idem avec affichage de la valeur courante et conversion en unité voulue
  • Idem avec option de tracé d’une croix de lignes et du point courant
  • Idem multicourbe sur le même graphe
  • Idem multicourbe sur n courbes

Images simples avec pyqtgraph

  • Affichage d’une image simple
  • Création d’une image telle que i=f(x,y)

Images avec widgets pyqtgraph

Images et ROI

Tracé d’images « temps-réel » ou animées

  • Affichage animé d’une image telle que i=f(x,y)

PyQt + Qwt : afficher des graphiques et des courbes

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.PYQTGraphMath
  • Présentation de Qwt et principe d’utilisation avec PyQt

Utiliser les widgets de réglages Qwt

  • Utiliser le QwtCounter, widget amélioré de réglage de valeur numérique
  • Utiliser le QwtWheel, widget de réglage rotatif sans fin

Utiliser les widgets d’affichage analogique Qwt

  • Utiliser un afficheur analogique « à aiguille »
  • Régler un afficheur analogique « à aiguille » avec un slider
  • ..

Découvrir le QwtPlot, l’affichage des points, l’utilisation de marqueurs et l’utilisation du Zoom.

  • Découvrir et configurer QwtPlot, le widget de tracé de courbe
  • Afficher des points(x,y) quelconques dans un QwtPlot
  • Paramétrer l’aspect des points
  • Paramétrer l’aspect du tracé (le type de connexion entre les points)
  • Afficher un Marker dans un QwtPlot et le déplacer à l’aide de pushButton
  • Afficher les coordonnées du point courant du graphique sous le curseur souris +/- afficher axes passant par le point
  • Afficher un Marker à l’emplacement du curseur lors d’un clic souris
  • Appliquer un zoom (au besoin itératif) à une zone du graphique sélectionnée à la souris (sélection de zone, réinitialisation, zoom+, zoom-,…)

Tracer des courbes statiques avec Qwt

  • Afficher une simple courbe dans un QwtPlot
  • Appliquer un zoom (au besoin itératif) à une zone d’une courbe sélectionnée à la souris (sélection de zone, réinitialisation, zoom+, zoom-,…)
  • Sélectionner à l’aide de pushButton des points d’une courbe au sein d’un QwtPlot à l’aide d’un Marker et afficher les coordonnées du point courant
  • Modifier l’échelle d’affichage d’une courbe par appui sur un pushBouton + 2 champs texte (mapper valeurs / nombre x)

Tracer des courbes interactives avec Qwt

  • Modifier les paramètres de tracé d’une courbe à l’aide de sliders – 34 p.
  • Utiliser un QwtPlot à la façon « Processing »

Tracer des courbes « temps-réel » avec Qwt

pushButton

  • Ajouter des points à une courbe en « temps réel » par appui sur un pushButton
  • Datalogging de points d’une courbe ajoutés à l’aide push button, ouverture fichier, retracé courbe, etc…

timer

  • Afficher une courbe progressivement à l’aide d’un Timer (ajout final ou initial + effacement entre chaque passage) *
  • Afficher une courbe progressivement à l’aide d’un Timer (ajout final ou initial + affichage continu) *

Port série

  • Afficher sous forme d’une courbe des données reçues en temps réel depuis le port Série (base oscillo) (ajout final ou initial + effacement entre chaque passage)
  • Afficher une courbe progressivement à l’aide d’un Timer (ajout final ou initial + affichage continu)
  • Datalogging de points d’une courbe reçus par le port série, bouton stop/go, ouverture fichier, enregistrement courbe, retracé courbe, etc…
  • Application pour étalonnage de capteur (chaque appui pushButton prend en compte nouveau point basé sur X + Y mesuré) + datalogging

Tracé de Map avec Qwt

  • Utiliser une échelle de couleur
  • Tracer une Map
  • Afficher les contours d’un Map.

Calcul mathématique et gestion des tableaux

  • Fonctions de base de gestion des tableaux avec NumPy

Applications utilisant le tracé de courbe en temps réel

  • Un oscilloscope « mono-voie » pour Arduino simple
  • Un oscilloscope « multi-voies » simultanées pour Arduino simple
  • Un oscilloscope « multi-voies » séparées pour Arduino simple
  • Un oscilloscope « mono-voie » pour Arduino simple avec analyse graphique
  • Un oscilloscope « multi-voies » séparées pour Arduino simple avec analyse graphique
  • Un oscilloscope « multi-voies » simultanées pour Arduino simple avec analyse graphique
  • Un oscilloscope « mono-voie » pour Arduino avec fonction d’enregistrement dans un fichier
  • Un oscilloscope « multi-voies » pour Arduino avec fonction d’enregistrement dans un fichier

Création originale de X.HINAULT – www.mon-club-elec.fr – 2013 – Tous droits réservés – GPLv3

Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.