Recherche de site Web

Comment tracer des données dans Python 3 en utilisant matplotlib


Introduction

Python est excellent pour le traitement des données. Souvent, un ensemble de données inclura plusieurs variables et de nombreuses instances, ce qui rend difficile la compréhension de ce qui se passe. La visualisation des données est un moyen utile pour vous aider à identifier des schémas dans vos données.

Par exemple, disons que vous êtes un agent immobilier et que vous essayez de comprendre la relation entre l'âge d'une maison et son prix de vente. Si vos données comprenaient un bloc de 5 maisons, il ne serait pas trop difficile de comprendre ce qui se passe. Cependant, disons que vous vouliez utiliser des données de toute la ville, comprenant 500 maisons. Dans ce cas, il deviendrait assez difficile de comprendre comment l'âge affecte le prix. Visualiser les données, en traçant le prix de vente par rapport à l'âge, pourrait définitivement éclairer la relation qui existe entre les deux.

La visualisation est un moyen rapide et facile de transmettre des concepts de manière universelle, en particulier à ceux qui ne sont pas familiers avec vos données. Chaque fois que nous travaillons avec des données, la visualisation est souvent une partie nécessaire de l'analyse.

Nous allons utiliser la bibliothèque de traçage 2D, matplotlib, qui a été initialement écrite par John D. Hunter et qui est depuis devenue un projet de développement communautaire open-source très actif. Elle vous permet de générer des graphiques linéaires de haute qualité, des nuages de points, des histogrammes, des diagrammes à barres, et bien plus encore. Chaque graphique présente les données de manière différente et il est souvent utile d'essayer différents types de graphiques avant de choisir le plus informatif pour vos données. Il est bon de garder à l'esprit que la visualisation est un mélange d'art et de science.

Étant donné l'importance de la visualisation, ce tutoriel décrira comment tracer des données en Python en utilisant matplotlib. Nous allons voir comment générer un nuage de points à partir d'un petit ensemble de données, ajouter des informations telles que des titres et des légendes aux graphiques, et personnaliser les graphiques en changeant l'apparence des points de tracé.

Lorsque vous aurez terminé ce tutoriel, vous serez capable de tracer des données en Python !

Conditions préalables

Pour ce tutoriel, vous devez avoir Python 3 installé, ainsi qu'un environnement de programmation local configuré sur votre ordinateur. Si ce n'est pas le cas, vous pouvez vous configurer en suivant le guide d'installation et de configuration approprié pour votre système d'exploitation.

Étape 1 — Importation de matplotlib

Avant de pouvoir commencer à travailler en Python, vérifions que le module matplotlib est installé. Dans la ligne de commande, vérifiez si matplotlib est installé en exécutant la commande suivante :

  1. python -c "import matplotlib"

Si matplotlib est installé, cette commande se terminera sans erreur et nous serons prêts à commencer. Sinon, vous recevrez un message d'erreur :

  1. Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: No module named 'matplolib'

Si vous recevez un message d'erreur, téléchargez la bibliothèque en utilisant pip:

  1. pip install matplotlib

Maintenant que matplotlib est installé, nous pouvons l'importer dans Python. Tout d'abord, créons le script avec lequel nous allons travailler dans ce tutoriel : scatter.py. Ensuite, dans notre script, importons matplotlib. Comme nous allons uniquement travailler avec le module de traçage (pyplot), précisons-le lors de son importation.

import matplotlib.pyplot as plt

Nous spécifions le module que nous souhaitons importer en ajoutant .pyplot à la fin de matplotlib. Pour faciliter la référence à ce module dans notre script, nous l'abrégeons en plt. Maintenant, nous pouvons passer à la création et au traçage de nos données.

Étape 2 — Création de points de données à tracer

Dans notre script Python, créons des données à utiliser. Nous travaillons en 2D, donc nous aurons besoin de coordonnées X et Y pour chacun de nos points de données.

Pour mieux comprendre comment fonctionne matplotlib, nous allons associer nos données à un scénario réaliste possible. Faisons semblant d'être propriétaires d'un café et d'être intéressés par la relation entre la température moyenne tout au long de l'année et le nombre total d'achats de café glacé. Notre variable X sera le nombre total de cafés glacés vendus par mois, et notre variable Y sera la température moyenne en Fahrenheit pour chaque mois.

Dans notre script Python, nous allons créer deux variables de liste : X (total des cafés glacés vendus) et Y (température moyenne). Chaque élément de nos listes respectives représentera des données de chaque mois (de janvier à décembre). Par exemple, en janvier, la température moyenne était de 32 degrés Fahrenheit et le café a vendu 590 cafés glacés.

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

Maintenant que nous avons nos données, nous pouvons commencer à tracer.

Étape 3 — Tracé des données

Les graphiques en nuage de points sont excellents pour déterminer la relation entre deux variables, donc nous utiliserons ce type de graphique pour notre exemple. Pour créer un nuage de points en utilisant matplotlib, nous utiliserons la fonction scatter(). La fonction nécessite deux arguments, qui représentent les valeurs des coordonnées X et Y.

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)
plt.show()

Chaque fois que nous créons un graphique, nous devons également spécifier que nous voulons que le graphique s'affiche en utilisant plt.show().

Avant de continuer, vérifions que notre script fonctionne. Enregistrez le script et exécutez-le via la ligne de commande :

  1. python scatter.py

Si tout s'est bien passé, une fenêtre devrait s'être ouverte affichant le graphique, comme ceci :

Cette fenêtre est idéale pour visualiser des données ; elle est interactive et comprend plusieurs fonctionnalités, telles que le survol pour afficher des étiquettes et des coordonnées, le zoom avant ou arrière, et l'enregistrement.

Étape 4 — Ajout de titres et d'étiquettes

Maintenant que nous savons que notre script fonctionne correctement, nous pouvons commencer à ajouter des informations à notre graph. Pour clarifier ce que nos données représentent, ajoutons un titre ainsi que des étiquettes pour chaque axe.

Nous commencerons par ajouter un titre. Nous ajoutons le titre avant la ligne plt.show() dans notre script.

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)

plt.title('Relationship Between Temperature and Iced Coffee Sales')

plt.show()

Ensuite, ajoutez des étiquettes pour les axes juste en dessous de la ligne plt.title :

...
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')
...

Si nous sauvegardons notre script et le réexécutons, nous devrions maintenant avoir un graphique mis à jour qui est plus informatif. Notre graphique mis à jour devrait ressembler à quelque chose comme ceci :

Étape 5 — Personnalisation d'un graphique

Chaque ensemble de données avec lequel nous travaillons sera unique et il est important de pouvoir personnaliser la façon dont nous souhaitons afficher nos informations. N'oubliez pas que la visualisation est aussi un art, alors laissez libre cours à votre créativité ! matplotlib comprend de nombreuses fonctionnalités de personnalisation, telles que différentes couleurs, symboles de points et tailles. En fonction de nos besoins, nous pourrions vouloir jouer avec différentes échelles, en utilisant différentes plages pour nos axes. Nous pouvons changer les paramètres par défaut en désignant de nouvelles plages pour les axes, comme ceci :

import matplotlib.pyplot as plt

X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

plt.scatter(X,Y)

plt.xlim(0,1000)
plt.ylim(0,100)

plt.title('Relationship Between Temperature and Iced Coffee Sales')

plt.show()
...

Les points du graphique original semblaient un peu petits et le bleu n'est peut-être pas la couleur que nous voulons. Peut-être que nous voulons des triangles au lieu de cercles pour nos points. Si nous voulons changer la couleur/la taille/la forme des points, nous devons apporter ces modifications dans l'appel initial de plt.scatter(). Nous allons changer les paramètres suivants :

  • s: taille du point, par défaut=20
  • c : couleur, séquence ou séquence de couleur, par défaut='b'
  • marker: symbole de point, par défaut='o'

Les marqueurs possibles incluent un certain nombre de formes différentes, telles que des diamants, des hexagones, des étoiles, etc. Les choix de couleurs incluent, mais ne se limitent pas à, le bleu, le vert, le rouge et le magenta. Il est également possible de fournir une chaîne hexadécimale HTML pour la couleur. Consultez la documentation de matplotlib pour des listes complètes de marqueurs et de couleurs possibles.

Pour rendre notre graphique plus lisible, triplons la taille des points (s=60), changeons la couleur en rouge (c='r') et modifions le symbole en triangle (marker='^'). Nous allons modifier la fonction plt.scatter() :

plt.scatter(X, Y, s=60, c='red', marker='^')

Avant d'exécuter notre script mis à jour, nous pouvons vérifier que notre code est correct. Le script mis à jour pour le tracé personnalisé devrait ressembler à ceci :

import matplotlib.pyplot as plt


X = [590,540,740,130,810,300,320,230,470,620,770,250]
Y = [32,36,39,52,61,72,77,75,68,57,48,48]

#scatter plot
plt.scatter(X, Y, s=60, c='red', marker='^')

#change axes ranges
plt.xlim(0,1000)
plt.ylim(0,100)

#add title
plt.title('Relationship Between Temperature and Iced Coffee Sales')

#add x and y labels
plt.xlabel('Cups of Iced Coffee Sold')
plt.ylabel('Temperature in Fahrenheit')

#show plot
plt.show()

N'oubliez pas de sauvegarder votre script avant de passer à l'étape 6.

Étape 6 — Sauvegarde d'un graphique

Maintenant que nous avons terminé notre code, exécutons-le pour voir notre nouveau graphique personnalisé.

  1. python scatter.py

Une fenêtre devrait maintenant s'ouvrir affichant notre graphique :

Ensuite, enregistrez le graphique en cliquant sur le bouton de sauvegarde, qui est l'icône de disque située sur la barre d'outils inférieure. Gardez à l'esprit que l'image sera enregistrée au format PNG au lieu d'un graphique interactif. Vous avez maintenant votre propre nuage de points personnalisé, félicitations !

Conclusion

Dans ce tutoriel, vous avez appris à tracer des données en utilisant matplotlib en Python. Vous pouvez maintenant visualiser des données et personnaliser des graphiques.

Pour continuer à pratiquer avec matplotlib, vous pouvez suivre notre guide sur « Comment tracer la fréquence des mots en utilisant matplotlib avec Python 3. »