Tutoriel Python : comment réaliser un Scatter plot
Table des matières
- Scatter plots (nuage de points)
- Quand faut-il utiliser les scatter plots ?
- Corrélation avec le nuage de points
- Réaliser un Scatter plots en python
4.1. Réaliser un Scatter plots en python
4.2. Création d'un nuage de points à l'aide de Matplotlib
- Création d'un nuage de points à l'aide de Python Pandas et Matplotlib à partir d'un fichier csv
- Exercices
- Correction
Introduction
La visualisation de données est la représentation graphique d'informations et de données. En utilisant des éléments visuels tels que des graphiques, des graphiques et des cartes, les outils de visualisation de données offrent un moyen accessible de voir et de comprendre les tendances, les valeurs aberrantes et les modèles dans les données.
Dans ce didacticiel Python, nous allons apprendre à créer des nuages ??de points dans Matplotlib et Pandas, les nuages ??de points sont parfaits pour déterminer si deux ensembles de données sont corrélés ou non
La première partie du tutoriel définit ce que sont les Scatter plots et pourquoi nous les utilisons
Ensuite, nous allons utiliser Pandas pour créer de simples nuages ??de points, et pour styliser nos nuages ??de points et bien les contrôler, nous allons utiliser la bibliothèque Marplotlib
Enfin, vous allez apprendre à créer un Scatter plots à partir d'un fichier csv avec Pandas et Matplotlib.
1. Scatter plots (nuage de points)
Un nuage de points est un type de visualisation de données qui montre la relation entre différentes variables. Ces données sont affichées en plaçant divers points de données entre un axe x et y.
Essentiellement, chacun de ces points de données semble «dispersé» autour du graphique, donnant à ce type de visualisation de données son nom.
Les nuages ??de points peuvent également être connus sous le nom de diagrammes de dispersion ou de graphiques x-y, et le point d'utiliser l'un d'entre eux est de déterminer s'il existe des modèles ou des corrélations entre deux variables.
L'exemple de nuage de points ci-dessus montre les diamètres et les hauteurs d'un échantillon d'arbres fictifs. Chaque point représente un seul arbre ; la position horizontale de chaque point indique le diamètre de l'arbre (en centimètres) et la position verticale indique la hauteur de cet arbre (en mètres). À partir du graphique, nous pouvons voir une corrélation positive généralement étroite entre le diamètre d'un arbre et sa hauteur
afin de créer un nuage de points, nous devons sélectionner deux colonnes dans une table de données, une pour chaque dimension du graphique. Chaque ligne du tableau deviendra un point unique dans le tracé avec une position en fonction des valeurs de colonne.
2. Quand faut-il utiliser les scatter plots ?
Les principales utilisations des nuages ??de points consistent à observer et à montrer les relations entre deux variables numériques. Les points d'un nuage de points indiquent non seulement les valeurs des points de données individuelles, mais également les modèles lorsque les données sont prises dans leur ensemble.
L'identification des relations de corrélation est courante avec les nuages ??de points. Dans ces cas, nous voulons savoir, si on nous donnait une valeur horizontale particulière, ce que serait une bonne prédiction pour la valeur verticale. Vous verrez souvent la variable sur l'axe horizontal dénoter une variable indépendante, et la variable sur l'axe vertical celle de la variable dépendante. Les relations entre les variables peuvent être décrites de plusieurs manières : positives ou négatives, fortes ou faibles, linéaires ou non linéaires.
Un nuage de points peut également être utile pour identifier d'autres modèles dans les données. Nous pouvons diviser les points de données en groupes en fonction de la proximité des ensembles de points. Les nuages ??de points peuvent également indiquer s'il existe des lacunes inattendues dans les données et s'il existe des points aberrants. Cela peut être utile si nous voulons segmenter les données en différentes parties.
3. Corrélation avec le nuage de points
On distingue 3 types de corrélation à l'aide de Scatter plots :
1) Si la valeur de y augmente avec la valeur de x, alors on peut dire que les variables ont une corrélation positive.
Exemple :
2) Si la valeur de y diminue avec la valeur de x, alors on peut dire que les variables ont une corrélation négative.
Exemple :
3) Si la valeur de y change aléatoirement indépendamment de x, alors on dit qu'elle a une corrélation nulle.
Exemple :
4. Réaliser un Scatter plots en python
Afin de réaliser un nuage de points en python, nous allons vous montrer Trois manières de dans ce tutoriel :
- Réaliser des nuages de points avec des Pandas.
- Réalisation des nuages de points avec Matplotlib.
- Réalisation des nuages de points à partir d’une fichier CSV.
4.1. Réaliser un Scatter plots en python
La classe pandas DataFrame en Python a un tracé de membre.
L'appel de la méthode scatter () sur le membre du tracé dessine un nuage de points entre deux colonnes de données d'un Pandas DataFrame.
Un Pandas DataFrame peut avoir plusieurs colonnes. Deux colonnes peuvent être choisies comme paramètres X et Y pour la méthode scatter ().
Exemple :
Syntaxe :
import pandas as pd
data = [(2, 5), (29, 88), (52, 2), (9, 4), (5, 12),(19, 8),(72, 22),(49, 4),(21, 63), (17, 7),(35, 270),(3, 6)]
dataFrame = pd.DataFrame(data=data, columns=['A','B']);
dataFrame.plot.scatter(x='A', y='B', title= "Scatter plot entre deux variable X et Y");
plot.show();
Résultat d’exécution :
4.2. Création d'un nuage de points à l'aide de Matplotlib
Matplotlib est une bibliothèque de traçage Python 2D qui produit des chiffres de qualité de publication dans une variété de formats papier et d'environnements interactifs sur toutes les plates-formes. Matplotlib peut être utilisé dans les scripts Python, les shells Python et IPython, le bloc-notes Jupyter et les serveurs d'applications Web.
- Matplotlib est la bibliothèque de traçage la plus populaire pour python.
- Elle vous donne le contrôle sur tous les aspects d'une figure.
- Il a été conçu pour avoir une sensation similaire au traçage graphique de Matlab.
Le moyen le plus simple d'installer matplotlib est d'utiliser pip. Tapez la commande suivante dans le terminal :
pip install matplotlib
Les étapes impliquées pour tracer un Scatter plots sont les suivantes:
- Définissez l'axe x et les valeurs correspondantes de l'axe y sous forme de listes.
- Tracez-les sur le canevas en utilisant la fonction .plot ().
- Donnez un nom aux axes x et y en utilisant les fonctions .xlabel () et .ylabel ().
- Donnez un titre à votre tracé en utilisant la fonction .title ().
- Enfin, pour visualiser votre tracé, nous utilisons la fonction .show ().
Exemple :
Vous trouverez ci-dessous un tableau des 11 notes des élèves sur 100 à leurs tests de mathématiques et d’anglais. Tracez un nuage de points à partir de ces données.
Math | 33 | 42 | 62 | 32 | 66 | 18 | 75 | 82 | 52 | 48 | 75 |
Anglais | 74 | 44 | 24 | 19 | 85 | 50 | 33 | 29 | 23 | 45 | 62 |
Nous mettrons la marque Maths sur l'axe xx et la marque anglaise sur l'axe yy. Ensuite, nous comparons la note mathématique de chaque élève à sa note en anglais
Syntaxe :
import matplotlib.pyplot as plt
x = [33,42,62,32,66,18,75,82,52,48,75]
y = [74,44,24,19,85,50,33,29,23,45,62]
plt.scatter(x, y, color="green")
plt.xlabel('Notes de Math')
plt.ylabel('Notes d\'anglais')
plt.title('Scatter plot Math Anglais')
plt.show()
Résultat d’exécution :
4.2.1. Personnalisation des Scatter plot dans Python Matplotlib
Nous pouvons personnaliser le nuage de points en passant certains arguments dans plt.scatter (). Certaines des options couramment utilisées pour personnaliser le nuage de points en python sont les suivantes : -
s - il représente la taille du marqueur du nuage de points et prend une taille entière. Plus la valeur de s est élevée, plus la taille du marqueur dans le diagramme de dispersion est élevée.
alpha- définit l'opacité / transparence des marqueurs du nuage de points. Elle prend des valeurs de 0 à 1.
c - couleur du marqueur du nuage de points. Peut fournir des noms de couleur, des couleurs hexa, etc.
edgecolor - couleur de la bordure du marqueur du nuage de points.
linewidth - largeur de la bordure du marqueur du nuage de points.
marker - définir différents types de marqueurs :
En utilisant l'argument marker vous pouvez choisir le style de votre choix. Voici quelques-uns des plus courants.
".": point
"o": cercle
"s": carré
"^": triangle
"v": triangle inversé
"+": plus
"x": X
"d" : diamant "
"h": hexagone
Essayons de personnaliser le même nuage de points de l'exemple que nous avons utilisé auparavant :
Syntaxe :
import matplotlib.pyplot as plt
x = [33,42,62,32,66,18,75,82,52,48,75]
y = [74,44,24,19,85,50,33,29,23,45,62]
plt.scatter(x, y, label= "stars", marker= "*",s=100, alpha=0.7, c='Red', edgecolor='green', linewidth=1)
plt.xlabel('Notes de Math')
plt.ylabel('Notes d\'anglais')
plt.title('Scatter plot Math Anglais')
plt.show()
Résultat d’exécution :
4.2.2. Création d'un nuage de points simple à l'aide du style Seaborn en Python
Seaborn est une bibliothèque pour créer des graphiques statistiques en Python. Il s'appuie sur matplotlib et s'intègre étroitement aux structures de données des pandas.
Seaborn vous aide à explorer et à comprendre vos données. Ses fonctions de traçage fonctionnent sur des dataframes et des tableaux contenant des ensembles de données entiers et effectuent en interne la cartographie sémantique et l'agrégation statistique nécessaires pour produire des tracés informatifs. Son API déclarative orientée jeu de données vous permet de vous concentrer sur ce que signifient les différents éléments de vos tracés, plutôt que sur les détails de leur dessin.
Exemple :
Nous allons appliquer le style Seaborn à l'exemple précédent
Il vous suffit d'ajouter la ligne suivante à votre code :
plt.style.use('seaborn')
Résultat d’exécution :
5. Création d'un nuage de points à l'aide de Python Pandas et Matplotlib à partir d'un fichier csv
Nous allons maintenant créer un Scatter Plot à partir d'un fichier CSV. Pour cela je vais utiliser un fichier csv avec lequel je mettrai un lien pour le télécharger à la fin de l'exemple.
Ce fichier de données d'exemple concerne les vues et appréciations des vidéos en tendance. Ici, nous allons tracer ces données en temps réel sous forme d’un Scatter plot en Python. Nous utiliserons pandas read_csv pour extraire les données du csv et les tracer.
Maintenant, j'ai téléchargé le fichier csv et l'ai enregistré sous le nom « données-scatter.csv» et je vais utiliser le code suivant pour créer le Scatter plot dans matplotlib en utilisant python et pandas.
Syntaxe :
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('seaborn')
data = pd.read_csv('données-scatter.csv')
vues = data['Nombre de vues']
Jaimes = data['Nombre de likes']
plt.scatter(vues, Jaimes, s=100, alpha=0.6, edgecolor='black', linewidth=1)
plt.title('Videos en tendances')
plt.xlabel('Vues')
plt.ylabel('Jaimes')
plt.tight_layout()
plt.show()
Résultat d’exécution :
Lien pour télécharger le fichier csv :https://drive.google.com/file/d/1O8euJ9Gj7QvsSmdRPsmXwAtCNZaZMu1X/view?usp=sharing
6. Exercices :
Cas pratique 1 :
Le magasin de vente de glace garde une trace de la quantité de glace qu'ils vendent par rapport à la température de midi ce jour-là. Voici leurs chiffres pour les 12 derniers jours :
Température ° C | Ventes de glaces en € |
15,4° | 323 € |
14,9° | 175 € |
13,2° | 345€ |
18,5° | 420 € |
21,1° | 512€ |
13,4° | 484 € |
22,2° | 600 € |
28,7° | 522€ |
16,8° | 433 € |
23,7° | 424 € |
18,3° | 423 € |
Questions :
- Créez un Scatter plot à partir des données ci-dessus en utilisant matplotlib
- Le nuage de points doit avoir ces paramètres :
Titre : Glace vs température
Marqueur : diamant
Nom d’axe X : Température
Nom d’axe Y : Ventes
Taille (s) : 100
Couleur de scatter : Noir
Seaborn style
3 Identifier quel type de corrélation entre les deux variables
Cas pratique 2
Pour cette cas pratique, nous utilisons Pandas et Matplotlib pour visualiser les données de vente d’une entreprise en fonction de nombre de mois
Utilisez le fichier CSV suivant pour créer un nuage de points à l'aide de pandas et de matplotlib
Vous pouvez télécharger le fichier csv et l'utiliser à partir de ce lien : https://drive.google.com/file/d/1OluubS6L5syBP6IxSaWZIoYzk7AjX1iC/view?usp=sharing
Le Scatter de points doit avoir ces paramètres :
Titre : Ventes en fonction de mois
Marqueur : hexagone
Nom d’axe X : Mois
Nom d’axe Y : Ventes
Taille (s) : 100
Alpha =0.6
Seaborn style
Identifier quel type de corrélation entre les deux variables
7. Correction :
Cas pratique 1 :
Syntaxe :
import matplotlib.pyplot as plt
plt.style.use('seaborn')
température = [15.4,14.9,13.2,18.5,21.1,13.4,22.2,28.7,16.8,23.7,18.3]
ventes = [323,175,345,420,512,484,600,522,433,424,423]
plt.scatter(température, ventes, label= "stars", marker= "D",s=100, alpha=0.7, c='black', linewidth=1)
plt.xlabel('Température')
plt.ylabel('Ventes')
plt.title(' Ventes de glace vs température')
plt.show()
Résultat d’exécution :
- Nous avons une corrélation positive car plus la température augmente, plus les ventes augmentent
Cas pratique 2 :
Syntaxe :
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('seaborn')
data = pd.read_csv('ventes-scatter.csv')
mois = data['Nombre de mois']
ventes = data['Revenue']
plt.scatter(mois, ventes, s=100, alpha=0.6, color='blue',marker='h')
plt.title('Ventes en fonction de mois')
plt.xlabel('Nombre de mois')
plt.ylabel('Ventes')
plt.show()
Résultat d’exécution :
Conclusion
La visualisation des données est la discipline qui consiste à essayer de comprendre les données en les plaçant dans un contexte visuel afin que des modèles, des tendances et des corrélations puissent être exposés.
Python propose plusieurs excellentes bibliothèques graphiques qui sont livrées avec de nombreuses fonctionnalités différentes.
Dans ce tutoriel, vous avez appris à créer des graphiques à l'aide de Python et Matplotlib et Pandas. Vous avez appris ce qu'est Matplotlib et pourquoi les résolveurs de problèmes devraient apprendre à utiliser Matplotlib. L'installation de Matplotlib a été présentée dans le tutoriel. Ensuite, vous avez appris à créer des Scatter plots et à enregistrer des tracés sous forme de fichiers images. Vous avez appris à personnaliser les tracés en incluant l'étiquette d'axe, les titres et les légendes sur vos tracés. Vous avez également appris à tracer un nuage de points à partir d'un fichier csv en utilisant à la fois pandas et matplotlib.
Article publié le 07 Novembre 2020 par Mouhtat Bilal