Python >> Tutoriel Python >  >> Python Tag >> Matplotlib

Dessin Python :Introduction à Python Matplotlib pour la visualisation de données (Partie 1)

Vous voulez savoir comment Python est utilisé pour le traçage et la visualisation des données ? Vous souhaitez apprendre l'une des bibliothèques de visualisation de données les plus couramment utilisées en Python ? Si oui, vous êtes au bon endroit.

Dans cet épisode d'un didacticiel en deux parties, nous apprendrons à utiliser matplotlib, l'une des bibliothèques de visualisation de données les plus couramment utilisées en Python. Au cours des deux articles, nous créerons différents types de graphiques, notamment :

  • Tracés linéaires
  • Histogrammes
  • Tracés à barres
  • Nuage de points
  • Stack plots
  • Graphiques circulaires

Nous verrons également quelles sont les différentes fonctions et modules disponibles dans matplotlib.

Ici, nous allons explorer comment créer uniquement des tracés linéaires et des histogrammes avec matplotlib. En plus de tracer des graphiques, nous verrons également comment modifier la taille par défaut des graphiques et comment ajouter des étiquettes, des titres et des légendes à leurs axes.

Prêt? Commençons !

Installer la bibliothèque Matplotlib

Le moyen le plus simple d'installer matplotlib est d'utiliser le programme d'installation de pip , qui est fourni avec la plupart des installations Python standard. Exécutez la commande suivante depuis votre terminal préféré :

pip install matplotlib

Si vous utilisez la distribution Anaconda de Python, vous pouvez également utiliser les commandes mentionnées dans la documentation officielle d'Anaconda pour installer la bibliothèque matplotlib.

Importation des bibliothèques requises :Numpy et MatplotLib.pyplot

Une fois que nous avons installé matplotlib, l'étape suivante consiste à importer les bibliothèques requises. La bibliothèque pyplot de matplotlib est utilisée pour tracer différents types de graphiques. Nous l'importerons avec la bibliothèque numpy.

Vous verrez comment exactement nous pouvons utiliser ces deux bibliothèques dans une section ultérieure. Pour l'instant, exécutez le script suivant pour les importer :

import matplotlib.pyplot as plt
%matplotlib inline 
import numpy as np

Puisque j'utilise Jupyter Notebook pour exécuter les scripts de cet article, je dois exécuter l'instruction %matplotlib inline, qui indique à l'IDE de tracer les graphiques dans son interface. Si vous n'utilisez pas un IDE comme celui-ci, vous n'avez pas besoin d'exécuter cette instruction.

Une autre chose importante à noter est que nous avons renommé pyplot comme plt lors de l'importation, car il est plus facile à taper et est un surnom standard pour pyplot . À partir de maintenant dans cet article, nous continuerons à utiliser ce surnom.

Maintenant, nous avons tout ce dont nous avons besoin pour commencer à tracer différents types de graphiques matplotlib.

Modification de la taille du tracé à l'aide de pyplot

Pour voir la taille de tracé par défaut des graphiques dessinés par plt , exécutez le script suivant :

plot_size = plt.rcParams["figure.figsize"] 
print(plot_size[0]) 
print(plot_size[1])

Dans le script ci-dessus, nous avons utilisé le rcParams attribut du plt module et passez "figure.figsize " comme paramètre, qui renvoie une liste contenant la largeur et la hauteur par défaut du tracé. Le premier index contient la largeur et le second index contient la hauteur. Les deux valeurs sont affichées à l'écran. Vous verrez 6 et 4 dans le sortie, ce qui signifie que la largeur par défaut du tracé est de 6 pouces et la hauteur par défaut est de 4 pouces.

Pour modifier la taille du tracé, exécutez le script suivant :

plot_size[0] = 8  
plot_size[1] = 6  
plt.rcParams["figure.figsize"] = plot_size

Dans le script ci-dessus, nous avons changé la largeur et la hauteur du tracé à 8 et 6 pouces, respectivement.

Tracés linéaires

Le tracé linéaire est le tracé le plus simple dans la bibliothèque matplotlib ; il montre la relation entre les valeurs sur les axes x et y sous la forme d'une courbe.

Pour créer un tracé linéaire, vous pouvez utiliser la fonction plot du plt module. Le premier argument du plot fonction est la liste des valeurs que vous souhaitez afficher sur l'axe des abscisses. Le deuxième argument est la liste des valeurs à dessiner sur l'axe des ordonnées. Jetez un œil à l'exemple suivant :

plt.plot([-3,-2,-1,0,1,2,3],[9,4,1,0,1,4,9])
plt.show()

Dans le script ci-dessus, nous avons six valeurs dans la liste pour l'axe des x. Sur l'axe des ordonnées, nous avons les carrés des valeurs de x. Cela signifie que le tracé linéaire affichera la fonction carrée, comme indiqué dans la sortie. Notez que la couleur de tracé par défaut pour les graphiques matplotlib est le bleu.

Il est important de mentionner que vous devez appeler le show fonction du plt modules si vous utilisez un éditeur autre que Jupyter Notebook. Dans Jupyter, la fonction d'affichage est facultative.

Produire des courbes lisses

Au lieu de saisir manuellement les valeurs des listes pour les axes x et y, nous pouvons utiliser la fonction linspace de la bibliothèque numpy. Cette fonction prend trois arguments :la borne inférieure des valeurs à générer, la borne supérieure et le nombre de points équidistants à renvoyer entre les bornes inférieure et supérieure. Regardez le script suivant :

x = np.linspace(-15, 14, 30)
y = np.power(x,3)

plt.plot(x, y, "rebeccapurple") 
plt.show()

Dans le script ci-dessus, nous avons également utilisé la fonction de puissance de la bibliothèque numpy pour calculer le cube de chaque élément du tableau x. Dans la sortie, vous verrez la ligne de la fonction cube affichée en violet, puisque nous avons spécifié 'rebeccapurple ' comme troisième paramètre du plot fonction.

Remarque pour les débutants : Une fonction en programmation réalise des opérations spécifiques . Pour transmettre des données à une fonction, nous utilisons des arguments. La fonction utilise alors les arguments qui lui sont passés. Par exemple, dans la fonction plot, le premier paramètre est les données à tracer sur l'axe des x, le deuxième paramètre est les données à tracer sur l'axe des y et le troisième paramètre est le code couleur. Un code couleur de 'rebeccapurple ' correspond à une nuance de violet.

Voici un tableau des autres couleurs que vous pouvez utiliser :


La sortie ressemble à ceci :

Ajout d'étiquettes, de titres et de légendes

Pour ajouter des étiquettes aux axes x et y, vous pouvez utiliser le xlabel et ylabel fonctions du plt module. De même, pour ajouter un titre, vous pouvez utiliser title fonctionner comme indiqué ci-dessous :

x = np.linspace(-15, 14, 30)
y = np.power(x,3)
 
plt.xlabel("input")
plt.ylabel("output")
plt.title("Cube Root")
plt.plot(x, y, "deepskyblue") 
plt.show()

Dans la sortie, vous devriez voir vos nouveaux libellés et titre d'axe :

Pour ajouter des légendes à votre tracé, vous devrez passer une valeur pour le label attribut de la fonction plot comme indiqué ci-dessous :

x = np.linspace(-15, 14, 30)
 
cube = np.power(x,3)
square = np.power(x,2)
 
plt.xlabel("input")
plt.ylabel("output")
plt.title("Cube Root")
 
plt.plot(x, cube, "rebeccapurple", label = "Cube") 
plt.plot(x, square , "deepskyblue", label = "Square") 
plt.legend()
plt.show()

Dans le script ci-dessus, nous avons deux tracés :un pour la fonction carré et un autre pour la fonction cube. Pour aider à distinguer les deux, nous pouvons non seulement utiliser des couleurs différentes, mais également inclure une légende qui indique clairement qui est quoi. Dans le script ci-dessus, la légende du tracé du cube a été nommée à juste titre Cube et sera dessinée en violet. La légende du tracé carré est nommée Carré et sera dessinée en bleu. La sortie du script ci-dessus ressemble à ceci :

Conseil de pro :comment améliorer les tracés de lignes Matplotlib

Vous pouvez également ajouter des marqueurs aux points de données sur un tracé linéaire. Pour ce faire, vous devez passer une valeur pour le paramètre marker de la fonction plot comme indiqué ci-dessous :

x = np.linspace(-15, 14, 30)
x = np.linspace(-15, 14, 30)

cube = np.power(x,3)
square = np.power(x,2)

plt.xlabel("input")
plt.ylabel("output")
plt.title("Cube Root")

plt.plot(x, cube, "rebeccapurple", marker = "o", label = "Cube") 
plt.plot(x, square , "deepskyblue", marker = "v", label = "Square") 
plt.legend()
plt.show()

Dans le script ci-dessus, nous avons spécifié 'o ' comme valeur du marqueur de la fonction cube ; cela générera des cercles pour les points de données. De même, pour la fonction carré, nous avons spécifié 'v ' comme valeur du marqueur ; ceci utilise un triangle inversé pour les points :

Les codes pour générer différents types de marqueurs dans matplotlib peuvent être trouvés ici.

Histogrammes

Un histogramme montre la distribution des données sous forme d'intervalles de données appelés "bacs". Pour tracer un histogramme, vous devez appeler le hist fonction du plt module. Le premier argument est l'ensemble de données, le second les bacs et le troisième le type d'histogramme que vous souhaitez tracer. Vous pouvez également utiliser le rwidth facultatif argument, qui définit la largeur de chaque intervalle ou "bin" dans l'histogramme. Regardez l'exemple suivant :

stock_prices = [23,21,43,32,45,34,56,23,67,89,23,21,43,32,45,34,56,23,67,89,23,21,43,32,45,34,56,23,67,89]
 
bins = [20,40,60,80,100]

plt.hist(stock_prices, bins, color = "rebeccapurple", histtype="bar", rwidth=0.9)
plt.show()

Dans le script ci-dessus, nous avons des données imaginaires sur les cours moyens des actions de trente entreprises. Nous définissons cinq classes pour les intervalles de données. Ensuite, nous utilisons le hist fonction pour tracer ces données. La sortie ressemble à ceci :

Vous pouvez également créer un histogramme horizontal . Pour cela, il suffit de passer la valeur 'horizontal ' comme valeur du paramètre d'orientation du hist fonction :

stock_prices = [23,21,43,32,45,34,56,23,67,89,23,21,43,32,45,34,56,23,67,89,23,21,43,32,45,34,56,23,67,89]

bins = [20,40,60,80,100]

plt.hist(stock_prices, bins, color = "deepskyblue", histtype="bar", rwidth=0.9, orientation = "horizontal")
plt.show()
Dans la sortie, vous verrez un histogramme horizontal comme indiqué ci-dessous :

Conseil de pro :comment améliorer votre histogramme Matplotlib

En plus des histogrammes 1D, vous pouvez également tracer des histogrammes 2D. Pour ce faire, vous avez besoin de valeurs pour les axes x et y de l'histogramme 2D . Le hist2d la fonction est utilisée pour tracer des histogrammes 2D :

stock_prices = [23,21,43,32,45,34,56,23,67,89]
years =[2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018] 

plt.hist2d(stock_prices, years)
plt.show()

Ce script trace les cours des actions par rapport à leurs années, comme indiqué ci-dessous :

Envie de plus ?

Ici, nous avons examiné une brève introduction au traçage de données en Python avec des graphiques simples comme des tracés linéaires et des histogrammes, ainsi que leurs variantes. Dans la deuxième partie de cette série, vous apprendrez à créer des diagrammes à barres, des diagrammes à piles, des diagrammes de dispersion et des diagrammes à secteurs.

Vous voulez en savoir plus sur Python pour la science des données ? Assurez-vous de consulter notre cours en ligne Introduction à Python pour la science des données pour un guide du débutant sur la programmation Python.