View  Edit  Attributes  History  Attach  Print  Search

PYQTLAB

Affichage graphique et mathématique avec PyQt

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

Tracé de courbes simples

Les bases

Affichages de courbes y=f(x)

Exemples de courbes mathématiques

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

Paramétrage de l'interactivité du graphique

Le clic droit sur le graphique pyqtgraph permet l'export immédiat aux formats *.svg, *.png et même Matplotlib du graphique courant !! Il est donc incroyablement simple de réutiliser un graphique pyqtgraph obtenu par calcul !

Doc

  • L'interactivité par défaut
  • Description du menu contextuel par défaut et des options disponibles

Codes

Tracé de courbes "temps réel"

Simple

Pyduino

Port Série (Arduino)
Avec Pyqtgraph (recommandé)

Avec PyQwt (obsolète)

  • 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

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

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)