# Autres langages > Python > GUI >  [Python 3.x] Tableaux et graphiques: Quelles sont les meilleures solutions ?

## poalcospe

Bonjour,

Dans le cadre d'un projet je dois effectuer des mesures  l'aide de scripts Python, rcuprer les valeurs de ces mesures, et les rpartir dans un tableau ainsi qu'un graphe. Les valeurs doivent tre sauvegardes  chaque utilisation. Ce projet sera concrtiser par une interface graphique faite  l'aide de Pyside. C'est quelque chose de relativement basique  faire. Schmatiquement a donnerait a: 
Relev mesures (Python) --> Enregistrement dans tableau (Excel/CSV) --> Modlisation d'un graphe (Excel/Matplotlib/Autre...) --> Affichage du graphe (Pyside).

J'ai  ma connaissances plusieurs faons de faire, et j'aurais aim recueillir vos avis quand  la plus facile d'utilisation. 

J'ai pens  3 solutions: 

Enregistrer les nouvelles valeurs dans un fichier Excel, gnrer automatiquement le graphique Excel correspondant, et l'afficher avec Pyside. (Je ne pense pas que l'on puisse gnrer le graphique Excel  partir de Python, et que l'on puisse afficher un graphique Excel via Pyside; il me reste des recherches  faire  ce niveau l). 

Enregistrer les nouvelles valeurs dans un fichier CSV, et en afficher le graphique via Excel ou un autre outil (Je n'ai pour le moment pas trouv d'outil me permettant dinteragir avec Python... A noter que *je suis contraint d'utiliser Python 3.1*...)

Enregistrer les valeurs dans un fichier Excel ou CSV, et afficher un graphique directement via matplotlib (qui me parait tre le meilleur package concernant la construction de graphe avec Python). 

J'ai galement eu vent du package Pandas, mais je n'ai pas retenu cette solution pour le moment. A tort ? 

Voil les 3 principales solutions auxquelles je pense, je suis ouvert  d'autres suggestions auxquelles je n'aurai pas pens. Je cherche une solution assez simple, et stable. 

J'espre avoir t suffisamment clair, merci pour vos rponses. 

Poalcospe

----------


## Julien N

> A noter que *je suis contraint d'utiliser Python 3.1*


Hmm a risque de poser quelques problmes effectivement. Toutes les bibliothques n'ont pas t portes de 2.7  3.1.

Commencer par faire l'tat des lieux des technos disponibles c'est une trs bonne chose. A mon avis le choix devrait s'orienter vers du tout python (pas d'Excel). L'interface entre les deux est tout  fait faisable, mais c'est ce compliquer la vie pour pas grand chose. Si on reprend le schma de fonctionnement du programme:
Relev mesures (Python): Quelques questions, sous quelle forme et  quelle frquence ces mesures sont-elles faites? La forme des mesures?Enregistrement dans tableau: Ici la solution va dpendre  la fois de la version de python (dispo modules) et du point prcdent. On peut envisager une base de donne, un fichier csv que l'on ouvre et ajoute une donne  chaque mesures (si ce n'est pas trop frquent), ou garder en mmoire si l'acquisition se fait en une seule fois (du genre rcuprer toutes les donnes  la fois depuis une source).Modlisation d'un graphe: Matplotlib sans hsiter.Affichage du graphe (Pyside): Je n'ai jamais ralis d'interface en Qt pour le moment. En plus de Pyside il y a pyqt4 (m'tonnerais que pyqt5 soit compatible avec python 3.1), mais il y a aussi tkinter (assez bas niveau, mais de base avec python) ou encore wxpython (plus d'abstraction que tkinter et plus joli car s'adapte  l'interface du systme d'exploitation).

Voil ma petite pierre  l'difice.

----------


## poalcospe

Salut, 




> A mon avis le choix devrait s'orienter vers du tout python (pas d'Excel).


J'ai justement trouv un module "XlsxWriter" (http://xlsxwriter.readthedocs.org/index.html) qui permet d'utiliser Excel et ses fonctionnalits graphiques de manire assez simple. Connaissais-tu ce module ?




> sous quelle forme et  quelle frquence ces mesures sont-elles faites? La forme des mesures?


Les mesures seront faites environ 1  2 fois par semaine. Il s'agit de mesurer le temps de lecture d'une carte  puce rgulirement afin d'observer d'ventuels impacts dus aux mises  jours qui seront effectues. Mon script Python fait en ralit 3 mesures successives et ne sauvegardera que la moyenne de ces 3 mesures. 




> un fichier csv que l'on ouvre et ajoute une donne  chaque mesures


C'est effectivement ce  quoi je pensais




> ou garder en mmoire si l'acquisition se fait en une seule fois (du genre rcuprer toutes les donnes  la fois depuis une source).


Je ne suis pas sur de comprendre; cette mthode s'appliquerait dans le cas o j'aurais besoin d'un enregistrement diffrent par mesure c'est a (une srie de mesure = un fichier correspondant) ? 

Concernant l'affichage, j'ai toujours fonctionn avec Pyside et je suis  l'aise avec donc je pense le garder. Ceci tant dit, je rejoins ton point plus haut liminant Excel: Afficher un graphique Excel avec Pyside ncessiterait que j'exporte ce graphique en image pour l'afficher... Et je n'ai pas la moindre ide de comment faire  partir de Python. 

Merci de ta rponse !  ::):

----------


## Julien N

J'ai dj utilis XlsxWriter (et XlswReader), oui, mais que pour la lecture et l'criture de donnes sans formatage ni graph. Mais plus depuis que j'utilise pandas, qui propose cette fonctionnalit l nativement. C'est le module rver des que l'on veut manipuler des tableaux: fonctions, statistique, tableaux croiss dynamiques, extractions, filtrage, groupage, etc..

Je pense que le fichier csv est le bon format ici. Trs facile  lire en python (modules csv, numpy, pandas) et tout aussi lisible par Excel si besoin par la suite. Facile aussi  partager avec un tiers. 




> ou garder en mmoire si l'acquisition se fait en une seule fois (du genre rcuprer toutes les donnes  la fois depuis une source).


Je pensais par l que la carte pouvait servir de moyen d'acquisition en temps rel (genre thermomtre, baromtre, colorimtre, machinmtre). Pas du tout le cas visiblement. 

J

----------


## poalcospe

> Mais plus depuis que j'utilise pandas, qui propose cette fonctionnalit l nativement. C'est le module rver des que l'on veut manipuler des tableaux: fonctions, statistique, tableaux croiss dynamiques, extractions, filtrage, groupage, etc..


J'en dduis qu'il serait trs utile d'utiliser  la fois Pandas et Matplotlib. Cependant il y a quelque chose que j'ai du mal  saisir: Ces deux modules servent-ils  la mme chose ? Dans quel cas vas tu utiliser l'un ou l'autre ?

----------


## Julien N

Salut,




> Ces deux modules servent-ils  la mme chose ?


Pas du tout. Matplotlib est une librairie permettant de gnrer des graphs. Toute sorte de graph (voir gallerie) tandis que pandas sert  manipuler des donnes sous la forme de "sries", "tableaux" ou "panneaux" (un panneau est compos de plusieurs tableaux qui sont composs de sries). Pandas se repose sur une trs populaire librairie, numpy, ddie  la manipulation de vecteurs et matrices (avec toute une chie de super fonctions vectorielles). Pandas est inspir du langage R trs utilis en statistiques.

Les trois ensembles (numpy - et par extension scipy qui englobe numpy -, pandas et matplotlib) forment un combo trs puissant pour ce qui est de l'analyse, manipulation et reprsentation de donnes. Ce qui fait que python n'a strictement rien  envier  MatLab.

----------


## poalcospe

Ok je comprend mieux. Je pense que Pandas n'est pas indispensable pour le projet, le fichier CSV tant relativement simple  construire vu les donnes que j'ai  traiter. Par contre pour une utilisation jumele de Python avec Excel a peut tre intressant. Ce que tu me dis me conforte donc dans l'ide que l'une des solutions que j'ai identifi peut tre bien adapte  ce projet; merci. 

Je reste nanmoins  l'coute au cas o d'autres propositions seraient mises.

----------

