List to Graph Comment représenter votre liste sous forme de graphique en Python

Laissez-moi commencer par vous montrer le graphique suivant:

Cela semble familier, n'est-ce pas? Cela s'appelle un graphique à barres. Nous les dessinons normalement en utilisant différentes applications telles que Microsoft Excel et Microsoft Word..

Si nous voulons avoir plus de contrôle sur le processus de création des graphiques, la création par programmation de tels graphiques serait le meilleur choix..

Dans ce tutoriel, je vais vous montrer comment créer des graphiques à barres avec Python. Prêt?

Si vous souhaitez approfondir votre connaissance de Python et apprendre à utiliser la puissance de Python pour gérer les données, pourquoi ne pas consulter ces deux cours:

De quels modules avons-nous besoin?

Afin de réaliser la tâche de dessiner un graphique à barres, nous aurons principalement besoin de deux modules: le module Image et le module ImageDraw, qui seront tous deux importés à partir de la bibliothèque d'imagerie Python (PIL). le Image module sera utilisé pour charger une image, tandis que le ImageDraw module sera utilisé pour créer les graphiques 2D (c'est-à-dire tracer une ligne).

En mentionnant PIL, laissez-moi vous montrer comment nous pouvons l’installer. Mais je vais vous montrer comment installer Pillow à la place. La raison en est que la version la plus récente de PIL, PIL 1.1.7, a été publiée en 2009 et ne prend en charge que Python 1.5.2-2.7. Il ne supporte donc pas Python 3.X, et je crains que son développement ne soit interrompu depuis le dernier engagement pour le projet PIL en 2011.

L'oreiller vient ici à la rescousse, car il a bifurqué le référentiel PIL et ajouté la prise en charge de Python 3.X. Je vais donc utiliser Pillow pour les lecteurs qui utilisent Python 3.X. Mais travailler avec Pillow ne pose pas de problème si vous utilisez les versions précédentes de Python..

Installer un oreiller

Les étapes mentionnées dans cette section sur l’installation de Pillow s’adressent aux utilisateurs de Mac OS X, car j’écris actuellement ce didacticiel sur un système Mac OS X El Capitan, mais vous pouvez suivre les instructions de la documentation relative aux autres systèmes d’exploitation..

Un moyen simple d’installer Pillow sur votre Mac consiste à utiliser pip, qui peut être installé en tapant la commande simple suivante sur votre terminal:

$ sudo easy_install pip

Oreiller à ce stade peut être simplement installé en tapant:

$ sudo pip installer un oreiller

Construire le programme

Passons maintenant à travers les blocs de construction du programme, étape par étape. La première chose dont nous avons besoin est une image vierge sur laquelle nous allons dessiner notre graphique à barres. Vous pouvez télécharger l'image vierge.

Lisons maintenant cette image vierge et dessinons-la. Nous pouvons le faire comme suit:

depuis l'image d'importation PIL, ImageDraw img = Image.open ('blank.png') draw_img = ImageDraw.Draw (img)

Puisque nous voulons dessiner un graphique à barres, nous avons besoin de données. Pour cela, nous pouvons utiliser des listes. Ainsi, nos données (liste) peuvent ressembler à:

data = ["4", "5", "87", "1", "44", "83", "93", "2", "54", "84", "100", "64" ] 

À ce stade, tout ce que nous avons à faire est de dessiner le graphique à barres. Nous allons traiter les barres que nous voyons sur le graphique comme des lignes. Nous allons donc utiliser le ligne() méthode du ImageDraw module.

Je vais vous montrer le code qui va permettre de dessiner un graphique à barres, et je l'expliquerai plus tard:

pour i dans les données: x = x + 30 y = 200 - int (i) draw_img.line ((x, 200, x, y), width = 10, fill = (255,0,0,255))

Comme vous pouvez le constater, nous parcourons notre liste et dessinons un graphique à barres en utilisant les données de la liste.. x = x + 30 nous fournit l'espace requis entre chaque point de données de la liste sur l'axe des x. Avant de poursuivre, je tiens à vous rappeler que le (0,0) le point sur l'image est le en haut à gauche point de l'axe. Cela revient donc à tracer les lignes à l'envers de la façon habituelle de marquer les coordonnées d'un point sur un graphique..

Si nous sautons à la dernière ligne de la partie précédente du script, nous pouvons lire cette partie draw_img.line ((x, 200, x, y) comme suit: tracez une ligne à partir du point (x, 200) jusqu'au point (x, y). Donc, si nous commençons par le premier point de données 4, la ligne serait tirée de (34 200) à (34.196). Ainsi, lorsque je vous montrerai la sortie dans un instant, l’axe des x apparaîtra comme si c’était ce à quoi nous sommes normalement habitués (en partant du bas à gauche pour le point). (0,0)). Le truc ici était d'utiliser y = 200. Comme vous le verrez, nous aurons toujours une ligne tracée où y = 200 pour tous les points de données, ce qui nous donnera l’impression de la manière dont nous dessinions les points sur un graphique lors de la visualisation de notre résultat.

le largeur représente la largeur (épaisseur) de la ligne, et remplir = (255,0,0,255) représente la couleur de la ligne. C'est le RGBA couleur (une extension de la couleur RVB avec un canal Alpha qui représente l'opacité).

Enfin, nous pouvons voir l'image en utilisant la déclaration: img.show ().

Mettre tous ensemble

Maintenant que nous avons couvert les éléments de base de notre programme, mettons tout en place et voyons à quoi ressemble notre script:

à partir de l'importation d'image PIL Image, ImageDraw img = Image.open ('blank.png') draw_img = ImageDraw.Draw (img) data = ['4', '5', '87', '1', '44', ' 83 ',' 93 ',' 2 ',' 54 ',' 84 ',' 100 ',' 64 '] x = 0 pour i dans les données: x = x + 30 y = 200 - int (i) draw_img. ligne ((x, 200, x, y), largeur = 10, remplissage = (255,0,0,255)) img.show ()

Sortie

Vient maintenant la partie intéressante, le résultat du script ci-dessus. Si vous exécutez le programme, vous devriez avoir quelque chose de similaire à ce qui suit:

J'ai recadré la partie supérieure de l'image dans cet instantané; il devrait paraître plus grand dans la sortie d'origine.

Conclusion

Comme nous l’avons vu dans ce didacticiel, afin d’avoir plus de contrôle sur certaines tâches habituelles, comme dessiner un graphique pour certaines données, il serait utile d’utiliser un langage de programmation (c’est-à-dire Python).. 

Cependant, nous n’avons pas toujours besoin de réaliser de telles tâches à partir de rien; nous pouvons plutôt bénéficier de bibliothèques définies par l'utilisateur telles que Pillow dans notre tutoriel. L’utilisation d’une telle bibliothèque nous permettait de dessiner facilement le graphique à barres et l’utilisation de Python nous permettait d’utiliser certaines astuces pour produire le graphique comme nous le souhaitions.