diff --git a/README.md b/README.md index 9bf395137cffaf2add88646812499bba3e1b6e9f..4bfcb4c2dca29f3df061cc532498e8b9d8ef4c99 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,28 @@ -# Atelier MatPlotLib +## Vademecum Python, avec focus sur MatPlotLib Les **bases en Python et quelques astuces** pour bien démarrer avec Matplotlib, et une **collection d'exemples en hydrologie et hydraulique**, mis en forme et expliqués dans le [wiki de ce projet](https://gitlab.irstea.fr/christine.poulard/atelier-matplotlib/-/wikis/home), parce que... - on a toujours besoin de visualiser ses données et ses résultats - il est parfois très chronophage de trouver certaines informations, même si la question a l'air anodine (problème de mot-clé, question atypique, mauvaise piste...) ; une fois la solution trouvée, il est prudent d'en garder une trace ; autant partager ! - réaliser quelques figures est aussi un bon moyen d'entrer dans Python en manipulant ses concepts -**ANNONCE** : **la version 3.5.0 de matplotlib** est sortie le 15 nov 2021 + +## Vademecum Python +Quelques pages rappellent les **bases de Python**, initialement les bases utiles pour les graphiques, à l'attention de persnnes qui n'ont pas de gros bagage en Python mais souhaitent réaliser des graphes. +Au fur et à mesure, on ajoute des informations plus avancées: +- créer des environnements virtuels pour gérer les versions de Python et les versions des modules importés (cet aspect devient rapidement important !) : venv, poetry +- à venir : distribuer un code (zippap, ...) +- bien choisir ses types et les préciser (type hints et docstring suivant une convention) : types de Collections, de dataclass, ... +- les modules utiles en phase de développement, rencontrés dans des formations (profiling, gestion des warnings et erreurs, ... ) + +## Les interfaces graphiques +La partie "Atelier Python" vous propose de rendre **interactives** des fenêtres Matplotlib avec des fonctions et widgets du module Matplotlib. Cela permet d'avoir un résultat en un temps raisonnable et de découvrir les grands principes (associer une action à une interaction avec un widget ou un objet rendu réceptif). +Pour aller plus loin : +- **Tkinter** : facile à prendre en main, et présent dans la bibliothèque standard, il connaît toutefois des limitations. C'est le module utilisé pour mes projets **ST2shape** et les boîtes à outils hydrologiques. Il est utile de connaître le module **filedialog** qui permet, même en l'absence d'interface graphique, de proposer des fenêtres de dialogues pour ouvrir un fichier ou définir un chemin d'accès pour sauvegarder un fichier. +- **PyQT** : PyQT est basé sur "QT", "ZE" outil en C pour réaliser des interfaces, qui est donc très largement utilisé. Une page résume la présentation de Sylvain Coulibaly, développeur de "Pamhyr en Python" (2002) : utiliser **QTDesigner** pour créer une interface, connaître les types d'objets et leurs propriétés, la convertir en Python, associer des actions à aux widgets, définir des **signaux** (QTSignal), insérer un graphique MatplotLib, internationaliser avex **QTLinguist**. + +## Atelier Matplotlib +**ANNONCE** : **la version 3.5 de matplotlib** est sortie en nov 2021 ; cela peut vous faciliter la vie... ou poser problème dans vos codes existants. +la version courante est actuellement **3.5.2** (Août 2022) **Galerie de quelques exemples** Voir le tableau dans la page d'accueil du wiki pour la correspondance Atelier / Illustration / notions abordées, et la Galerie pour des exemples complémentaires.