Outils pour utilisateurs

Outils du site


issue187:python

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
issue187:python [2022/11/27 16:57] d52frissue187:python [2022/11/29 18:26] (Version actuelle) andre_domenech
Ligne 10: Ligne 10:
  
 Besides the scatter plot, there are line plots, log plots, stem plots, plots with multiple data sets and multiple axes, vertical bar plots, horizontal bar plots, multiple bar plots, stacked bar plots, histogram plots, datetime plots and candlestick plots – all without the need of using matplotlib.** Besides the scatter plot, there are line plots, log plots, stem plots, plots with multiple data sets and multiple axes, vertical bar plots, horizontal bar plots, multiple bar plots, stacked bar plots, histogram plots, datetime plots and candlestick plots – all without the need of using matplotlib.**
 +
 +Dans le numéro 171 de Full Circle (juillet 2021), nous avons examiné Plotext, un paquet pour Python qui permet de tracer directement dans un terminal. Au cours des 16 derniers mois, beaucoup de choses ont changé dans Plotext. Il est passé de la version 4.1.1 à la 5.2.8 et, bien qu'il y ait de nombreux changements au code interne, il y a aussi de nouvelles fonctionnalités. La page de leur dépôt est située à l'adresse https://github.com/piccolomo/plotext.
 +
 +Bien sûr, comme toujours, vous devez installer et/ou mettre à jour le paquet en utilisant pip.
 +
 +pip3 install --upgrade plotext
 +
 +Une fois que vous avez fait cela, vous pouvez commencer à l'essayer en utilisant Python dans un terminal.
 +
 +Si, en revanche, vous voulez écrire le programme, il ressemblera à ce qui est montré en haut à droite.
 +
 +Outre le nuage de points, il existe des diagrammes linéaires, des diagrammes logarithmiques, des diagrammes à tiges, des diagrammes avec plusieurs ensembles de données et plusieurs axes, des diagrammes à barres verticales, des diagrammes à barres horizontales, des diagrammes à barres multiples, des diagrammes à barres empilées, des diagrammes d'histogrammes, des diagrammes de datetime et des diagrammes en chandelier, le tout sans avoir besoin d'utiliser matplotlib.
 +
  
 **When I originally found Plotext, I was interested in using the package to display plots within a Tkinter program using a standard widget like a Tk Label widget. It took a while, but digging through the online documentation and the source code, I was able to find a way by saving the plot to a file, then reading it in as text into the label object. The biggest problem that I had was that the size of the plot was based strictly on the size of the terminal when you ran the plot. Things didn’t always line up, especially when you were running the program within an IDE. **When I originally found Plotext, I was interested in using the package to display plots within a Tkinter program using a standard widget like a Tk Label widget. It took a while, but digging through the online documentation and the source code, I was able to find a way by saving the plot to a file, then reading it in as text into the label object. The biggest problem that I had was that the size of the plot was based strictly on the size of the terminal when you ran the plot. Things didn’t always line up, especially when you were running the program within an IDE.
Ligne 20: Ligne 33:
  
 Take, for example, the code to produce a simple sine wave and display it in a Tk Label widget.** Take, for example, the code to produce a simple sine wave and display it in a Tk Label widget.**
 +
 +Lorsque j'ai découvert Plotext, j'étais intéressé par l'utilisation de ce paquet pour afficher des graphiques dans un programme Tkinter en utilisant un widget standard comme le widget Tk Label. Cela m'a pris un certain temps, mais en fouillant dans la documentation en ligne et dans le code source, j'ai pu trouver un moyen d'enregistrer le tracé dans un fichier, puis de le lire en tant que texte dans l'objet label. Le plus gros problème que j'ai rencontré était que la taille du tracé était strictement basée sur la taille du terminal lorsque vous avez exécuté le tracé. Les choses ne s'alignaient pas toujours, surtout lorsque vous exécutiez le programme dans un IDE.
 +
 +J'ai contacté l'auteur, et heureusement, il a été en mesure de fournir un correctif qui s'est retrouvé dans la version 4.1.1.
 +
 +J'étais donc très intéressé par la nouvelle version. Lorsque j'ai essayé de l'exécuter, il y avait un problème qui faisait que le tracé s'affichait en pagaille.
 +
 +J'ai recontacté l'auteur, cette fois un dimanche matin et, en 30 minutes, j'ai obtenu une solution de contournement qui ne nécessitait que le changement d'une ligne. Quelques petites choses ont également dû être réarrangées un peu, mais, au final, le processus était très similaire à celui de la version 4.1.1.
 +
 +Prenons, par exemple, le code permettant de produire une onde sinusoïdale simple et de l'afficher dans un widget Tk Label.
  
  
Ligne 29: Ligne 52:
  
 Which downloads, displays then deletes a .jpg image in the terminal.** Which downloads, displays then deletes a .jpg image in the terminal.**
 +
 +En haut à droite, la ligne 1 est la commande plotext qui crée le tracé avec le marqueur sélectionné par l'utilisateur. Ensuite, nous indiquons à la bibliothèque de ne pas limiter le tracé à la taille du terminal. Il y a deux valeurs booléennes, une pour les dimensions x et une pour les y. Nous indiquons ensuite à la bibliothèque la taille que nous voulons pour le tracé, puis nous effaçons les données de couleur (plt.clc()). Enfin, nous arrivons à la solution de contournement - qui consiste à construire le tracé en mode non coloré - et à l'affecter à un objet qui est finalement envoyé au widget Label via le paramètre textvar.
 +
 +Bien sûr, certains tracés sont plus compliqués, la première ligne devient alors multiple, mais les cinq dernières lignes sont les mêmes pour chaque type de tracé standard.
 +
 +Il y a deux nouveaux types de graphiques disponibles ou grandement améliorés depuis la première version que j'ai essayée, les graphiques d'images et les graphiques vidéo. Les tracés d'image prennent une image au format .jpg (et d'autres aussi, je crois), et l'affichent directement dans une fenêtre de terminal. Leur exemple de code est montré en bas à droite.
 +
 +Celui-ci télécharge, affiche puis supprime une image .jpg dans le terminal.
 +
  
 **Which admittedly, doesn’t do a great job with the default settings, but when set properly, will give you something like this. **Which admittedly, doesn’t do a great job with the default settings, but when set properly, will give you something like this.
Ligne 39: Ligne 71:
  
 Until next time, as always; stay safe, healthy, positive and creative!** Until next time, as always; stay safe, healthy, positive and creative!**
 +
 +Ce qui, il faut l'admettre, n'est pas très efficace avec les paramètres par défaut, mais qui, s'il est correctement configuré, vous donnera quelque chose comme ceci.
 +
 +Vous pouvez également l'utiliser (avec quelques modifications du code) pour afficher des images GIF animées et des vidéos youtube ou .mp4.
 +
 +Bien que je ne sache pas vraiment pourquoi on voudrait faire ces choses-là, cela montre la puissance de la bibliothèque Plotext.
 +
 +En conclusion, Plotext est une excellente bibliothèque complémentaire pour Python et, si vous avez besoin de faire des tracés légers dans un terminal ou dans une interface graphique Tkinter, vous ne pouvez pas faire mieux !
 +
 +Jusqu'à la prochaine fois, comme toujours : restez en sécurité, en bonne santé, positif et créatif !
 +
issue187/python.1669564641.txt.gz · Dernière modification : 2022/11/27 16:57 de d52fr