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

introduction

Python est idéal pour le traitement des données. Un ensemble de données comprend souvent 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 modèles dans vos données.

Par exemple, supposons 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 1 bloc de 5 maisons, il ne serait pas trop difficile d’avoir une idée de ce qui se passe. Cependant, supposons que vous vouliez utiliser les données de la ville entière de 500 maisons. Il deviendrait alors assez difficile de comprendre comment l'âge affecte le prix. La visualisation des données, en comparant le prix de vente par rapport à l’âge, pourrait certainement éclairer la relation qui existe entre les deux.

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

Nous utiliserons la bibliothèque de traçage 2D,matplotlib, qui a été initialement écrite par John D. Hunter et depuis lors est devenu un projet très actif de la communauté de développement open-source. Il vous permet de générer des tracés linéaires, des diagrammes de dispersion, des histogrammes, des graphiques à barres et bien plus encore de haute qualité. Chaque graphique présente les données de manière différente et il est souvent utile d'essayer différents types de graphique avant de choisir le graphique 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 didacticiel explique comment tracer des données en Python à l’aide de matplotlib. Nous allons générer un nuage de points en utilisant un petit ensemble de données, en ajoutant des informations telles que des titres et des légendes à des tracés, et en personnalisant les tracés en modifiant l'aspect des points de tracé.

Lorsque vous aurez terminé ce didacticiel, vous pourrez tracer des données en Python!

Conditions préalables

Pour ce didacticiel, vous devez avoir installé Python 3, ainsi qu’un environnement de programmation local configuré sur votre ordinateur. Si ce n'est pas le cas, vous pouvez vous installer en suivant lesappropriate installation and set up guide for your operating system.

[[step-1 -—- importing-matplotlib]] == É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 matplotlib en exécutant la commande suivante:

python -c "import matplotlib"

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

OutputTraceback (most recent call last): File "", line 1, in  ImportError: No module named 'matplolib'

Si vous recevez un message d'erreur, téléchargez la bibliothèque à l'aide de pip:

pip install matplotlib

Maintenant que matplotlib est installé, nous pouvons leimport en Python. Commençons par créer le script avec lequel nous allons travailler dans ce didacticiel:scatter.py. Ensuite, dans notre script, importons matplotlib. Comme nous ne travaillerons qu’avec le module de traçage (pyplot), précisons-le lors de l’importation.

scatter.py

import matplotlib.pyplot as plt

Nous spécifions le module que nous souhaitons importer en ajoutant.pyplot à la fin dematplotlib. Pour faciliter la référence au module dans notre script, nous l'abrégons enplt. Nous pouvons maintenant créer et représenter nos données.

[[step-2 -—- creation-data-points-to-plot]] == Étape 2 - Création de points de données à tracer

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

Pour mieux comprendre le fonctionnement de matplotlib, nous associerons nos données à un scénario réel. Supposons que nous sommes propriétaires d’un café et que nous nous intéressons au rapport entre la météo moyenne toute l’année et le nombre total d’achats de café glacé. Nos Xvariable seront 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) etY (température moyenne). Chaque élément de noslistsrespectifs représentera les données de chaque mois (janvier à décembre). Par exemple, en janvier, la température moyenne était de 32 degrés Fahrenheit et le café-restaurant vendait 590 cafés glacés.

scatter.py

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.

[[step-3 -—- plotting-data]] == Étape 3 - Tracer des données

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

scatter.py

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 tracé, nous devons également spécifier que nous voulons que le tracé s'affiche en utilisantplt.show().

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

python scatter.py

Si tout s'est bien passé, une fenêtre aurait dû s'ouvrir affichant le tracé, comme suit:

Alt Scatter plot

Cette fenêtre est idéale pour afficher des données. Il est interactif et inclut plusieurs fonctionnalités, telles que le survol pour afficher les étiquettes et les coordonnées, le zoom avant ou arrière et l’enregistrement.

[[step-4 -—- Ajout-de-titres-et-étiquettes]] == Étape 4 - Ajout de titres et d'étiquettes

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

Nous allons commencer par ajouter un titre. Nous ajoutons le titre avant la ligneplt.show() dans notre script.

scatter.py

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 ligneplt.title:

scatter.py

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

Si nous sauvegardons notre script et l'exécutons à nouveau, nous devrions maintenant avoir un graphique mis à jour qui est plus informatif. Notre parcelle mise à jour devrait ressembler à ceci:

Alt Scatter plot with a title and X/Y labels.

[[step-5 -—- customizing-a-plot]] == Étape 5 - Personnalisation d'un tracé

Chaque ensemble de données avec lequel nous travaillons sera unique et il est important de pouvoir personnaliser la façon dont nous aimerions afficher nos informations. Rappelez-vous que la visualisation est aussi un art, soyez créatif! matplotlib inclut de nombreuses fonctionnalités de personnalisation, telles que différentes couleurs, symboles de point et dimensionnement. Selon nos besoins, nous pouvons vouloir jouer avec différentes échelles, en utilisant différentes plages pour nos axes. Nous pouvons modifier les paramètres par défaut en désignant de nouvelles plages pour les axes, comme suit:

scatter.py

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 de l'intrigue d'origine semblaient un peu petits et le bleu peut ne pas être 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 / taille / forme réelle des points, nous devons effectuer ces changements dans l'appel initial deplt.scatter(). Nous allons changer les paramètres suivants:

  • s: taille du point, par défaut = 20

  • c: couleur, séquence ou séquence de couleurs, par défaut = «b»

  • marker: symbole ponctuel, par défaut = 'o'

Les marqueurs possibles comprennent un certain nombre de formes différentes, telles que des diamants, des hexagones, des étoiles, etc. Les choix de couleurs incluent, sans s'y limiter, le bleu, le vert, le rouge et le magenta. Il est également possible de fournir une chaîne HTML hexadécimale pour la couleur. Consultez la documentation de matplotlib pour une liste complète desmarkers etcolors possibles.

Pour rendre notre tracé plus facile à lire, triplons la taille des points (s=60), changeons la couleur en rouge (c='r') et changeons le symbole en triangle (marker='^') . Nous allons modifier la fonctionplt.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:

scatter.py

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.

[[step-6 -—- save-a-plot]] == Étape 6 - Enregistrement d'un tracé

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

python scatter.py

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

Alt Final scatter plot with title and X/Y labels and customized with larger

Ensuite, enregistrez le tracé en cliquant sur le bouton d’enregistrement, qui est l’icône du disque située dans 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 diagramme de dispersion personnalisé, félicitations!

Conclusion

Dans ce tutoriel, vous avez appris à tracer des données à l'aide de matplotlib en Python. Vous pouvez maintenant visualiser les données et personnaliser les tracés.

Pour continuer à utiliser matplotlib, vous pouvez suivre notre guide sur «https://www.digitalocean.com/community/tutorials/how-to-graph-word-frequency-using-matplotlib-with-python-3[How To Graph Fréquence des mots Utilisation de matplotlib avec Python 3]. ”

Related