Une introduction à Matplotlib en Python

Matplotlib est une bibliothèque de traçage Python que les experts en apprentissage automatique utilisent principalement pour créer des visualisations statiques et interactives.

Qu’est-ce que Matplotlib

Mathplotlib est une création de John D. Hunter en 2003 qui a été publiée le 8 mai 2021 et a une version actuelle de 3.4.2.

Cette bibliothèque est principalement écrite en Python, tandis que le reste est écrit en objectif C et JavaScript, ce qui la rend compatible avec la plate-forme.

Matplotlib utilise NumPy, qui est une extension numérique Python. Son extension avec NumPy ajoute sa viabilité en tant qu’alternative open source et en fait une meilleure préférence que MATLAB.

Pour les applications Python GUI, Matplotlib permet de tracer des tracés statiques à l’aide de l’API orientée objet qui l’accompagne.

Les utilisateurs ne peuvent utiliser que quelques lignes écrites de code Python pour visualiser leurs données à l’aide de différents tracés, notamment des nuages ​​de points, des histogrammes, des graphiques à barres, des graphiques à secteurs, des tracés linéaires et des tracés en boîte.

Vous pouvez utiliser Matplotlib pour créer des tracés sur des environnements tels que Python shell, Jupyter notebook,
Jupyter lab et également en utilisant Pycharm ou Anaconda et sur des serveurs d’applications Web comme Flask et Django sur diverses plates-formes.

Comme dans MATLAB, vous pouvez largement contrôler les tracés en termes de polices, de lignes, de couleurs et de styles.

Après la brève introduction de la bibliothèque Matplotib en Python, voyons comment nous pouvons la configurer dans nos systèmes.

Configuration de l’environnement Matplotlib

Comme tout autre package et bibliothèque Python, vous pouvez installer la bibliothèque Matplotlib précompilée et ses packages sur tous les systèmes d’exploitation avec le gestionnaire de packages pip.

Bien sûr, vous devez d’abord installer Python et le package pip sur votre système.

Les commandes suivantes affichent la version de Python et pip pour confirmer si ces outils sont déjà installés.

Vérifiez si Python est installé

Python --version

Vérifiez si pip est installé

pip -V

Installer Mathplotlib

La commande ci-dessous installe le package Matplotlib à partir du Python Package Index (PyPI).

python -m pip install matplotlib

Cette commande télécharge et installe les packages pertinents de Matplotlib. Vous devriez voir un message d’installation réussie une fois l’installation terminée.

Pour être sûr que Matplotlib a été installé avec succès, tapez la commande suivante, qui affichera la version de Matplotlib dans votre invite de commande.

import matplotlib
matplotlib.__version__

Les développeurs souhaitant installer le package Matplotlib non compilé doivent avoir accès au bon compilateur dans leur système, en plus des dépendances, des scripts d’installation, des fichiers de configuration et des correctifs.

Cependant, cette installation particulière de Matplolib non compilée peut être compliquée, en particulier pour les utilisateurs débutants de Matplotlib. Par conséquent, pourquoi ne pas simplement utiliser une commande en une ligne pour installer la bibliothèque en quelques secondes ?🤔

Après l’installation de Matplotlib, importez le package dans votre environnement pour accéder à ses utilitaires.

Options de traçage Matplotlib

Matplotlib fournit de nombreuses options de traçage pour visualiser les données. Il permet également la personnalisation des tracés en fournissant différents thèmes, couleurs et options de palette que l’utilisateur peut utiliser pour manipuler les tracés.

Ces options de traçage incluent :

#1. Graphiques à barres

Les graphiques à barres, connus sous le nom de graphiques à barres, sont une option appropriée pour visualiser une comparaison quantitative des valeurs au sein de la même catégorie.

Matplotlib représente ce tracé à l’aide de barres rectangulaires où leurs longueurs et hauteurs représentent leurs valeurs proportionnelles. Les barres peuvent être horizontales ou verticales.

Matplotlib utilise sa fonction plt.bar() pour créer le graphique à barres.

De plus, vous pouvez utiliser plus de fonctions pour manipuler ce tracé. Par exemple, les fonctions plt.xlabel() et plt.ylabel() étiquettent respectivement les axes x et y du graphique.

La fonction plt.title() vous permet également de donner un titre à votre tracé, tandis que la fonction plt.savefig() enregistre le tracé. La fonction plot.show(), qui est la plus importante, affiche le tracé.

#2. Graphiques circulaires

Vous pouvez visualiser la distribution proportionnelle des éléments au sein d’une même catégorie à l’aide d’un graphique statistique circulaire appelé camembert.

Les diagrammes à secteurs affichent les données sous forme de pourcentage. La zone entière du graphique correspond au pourcentage des données entières, tandis que les tranches de tarte individuelles représentent des sections du pourcentage des données.

Matplotlib utilise la fonction plt.pie() qui dessine et ajuste les paramètres du camembert.
Plus de paramètres comme le autopct qui impriment la valeur du graphique à secteurs jusqu’à 1 décimale sont utiles pour tracer des graphiques à secteurs.

Les organisations commerciales trouvent les graphiques à secteurs utiles pour présenter des informations pertinentes telles que les opérations, les ventes ou les ressources.

#3. Histogramme

Un histogramme affiche la distribution des données numériques. Il utilise des intervalles continus pour diviser les données en sections distinctes.

La principale différence entre un histogramme et un graphique à barres est le type de données qu’ils traitent. Alors que les histogrammes gèrent le type de données continues, les diagrammes à barres gèrent à la place les données catégorielles.

Matplotlib utilise la fonction hist() qui utilise un tableau de valeurs aléatoires ou définies pour créer l’histogramme.

#4. Tracés linéaires

Ces graphiques sont utiles pour montrer la relation entre deux valeurs de données que nous définissons comme numériques et catégorielles, sur une base X et Y.

Les tracés linéaires sont importants pour suivre l’évolution des valeurs de données sur une certaine période.

#5. Nuages ​​de points

Les diagrammes de dispersion indiquent la relation, y compris la corrélation entre les variables dans les données. Il est également utile pour identifier les valeurs aberrantes.

Les nuages ​​de points utilisent des points pour représenter la relation entre les variables de données et comment un changement dans une variable peut affecter une autre.

Comment créer des graphiques dans Matplotlib

Matplotlib utilise différentes fonctions pour créer différents tracés. Il utilise également très peu de lignes de code pour créer l’intrigue.

Ci-dessous, nous voyons comment créer les différentes options de tracé à l’aide de différentes fonctions dans Matplotlib.

#1. Diagramme à barres dans Matplotlib

Les graphiques à barres, comme expliqué ci-dessus, affichent les catégories de données à l’aide de barres et d’axes qui représentent une comparaison des catégories sur un axe et des valeurs correspondantes des catégories sur l’autre axe.

La fonction bar() dans Matplotlib prend différentes dispositions d’arguments pour décrire la disposition des barres, comme indiqué ci-dessous.

plt.bar(x, y, height, width, bottom, align)

Les paramètres x et y représentent les valeurs de coordonnées x et les valeurs de coordonnées y de la barre dans le tracé. Le paramètre width représente la largeur de la barre, tandis que le paramètre height représente la hauteur de la barre.

Par exemple, représentons le nombre de chiens et de chats dans un refuge pour animaux appelé x.

import matplotlib.pyplot as plt
import numpy as np

x = ["Cats", "Dogs"]
plt.xlabel("Cats and Dogs in Shelter")
plt.ylabel("No. of animals in Shelter")
plt.title("Number of cats and dogs in shelter x")
y = [300, 350]
plt.bar(x, y, color="black", width = 0.5)

Production:

Sortie de Bar Plot dans Mathplotlib

Comme dans notre exemple ci-dessus, vous pouvez spécifier davantage la couleur des barres à l’aide de l’attribut color. De plus, les plt.xlabel et p.ylabel nomment respectivement les axes x et y tandis que plt.title nomme le tracé.

#2. Comment créer un diagramme circulaire

Matplotlib utilise la fonction pie() fournie avec le module pyplot pour tracer un graphique à secteurs.
La fonction représente les données à tracer sous forme de tableau.

Syntaxe:

matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

Le paramètre couleurs définit la couleur des tranches de tarte. Vous pouvez utiliser un tableau de valeurs pour spécifier une couleur pour chaque tranche.

Pour inclure davantage de détails sur chaque tranche du graphique, l’argument autopct ajoute les pourcentages numériques que chaque tranche représente à l’aide de la notation de formatage String de Python. L’exploser en tant qu’argument accepte un tableau de valeurs qui commencent à partir de 0,1 pour définir la distance entre la tranche et le centre du secteur.

Traçons un graphique circulaire qui affiche les ressources en pourcentage allouées à un projet particulier.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([25, 10, 45, 20])
mylabels = ["w", "x", "y", "z"]
explodevalues = [0.1, 0.2, 0, 0]
colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red']
plt.title("Resources allocated for a random project")
plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct="%1.1f%%", shadow = True)
plt.show() 

Production:

Sortie du graphique circulaire dans Mathplotlib

Le graphique ci-dessus affiche un graphique à secteurs avec quatre tranches étiquetées w, x, y et z, respectivement. Les valeurs d’éclatement définissent à quelle distance du centre du secteur les tranches seront placées.

D’après le tableau ci-dessus, x est plus éloigné car sa valeur d’éclatement est supérieure au reste. L’attribut shadow ajoute une ombre au graphique à secteurs comme dans l’image tandis que autopct définit le pourcentage relatif à l’ensemble du secteur que chaque tranche représente.

#3. Création d’un tracé d’histogramme

Avec un histogramme, nous utiliserons une série d’intervalles pour représenter la plage des valeurs données sur l’axe des abscisses.
L’axe y, d’autre part, représentera les informations de fréquence.

Contrairement aux autres tracés, tracer un histogramme dans Matplotlib nécessite certaines étapes prédéfinies que vous devez suivre pour créer le tracé.

Ces étapes comprennent :

  • Créez un groupe de plages à partir de l’ensemble de valeurs de données dont vous disposez. Vous pouvez utiliser la fonction np.random.normal() qui peut générer des valeurs aléatoires pour vous.
  • À l’aide d’une série d’intervalles, distribuez les valeurs dans une plage de valeurs.
  • Comptez les valeurs comprises dans chaque intervalle particulier.
  • Utilisez maintenant la fonction matplotlib.pyplot.hist() pour créer l’histogramme.
  • La fonction hist() accepte plusieurs paramètres, notamment :

    x – Cela représente la séquence du tableau

    bins – Il s’agit d’un paramètre facultatif qui représente des intervalles de variables sans chevauchement pouvant contenir des entiers ou une séquence String.

    plage – Il définit la plage supérieure et inférieure des bacs

    align – Ce paramètre contrôle l’alignement de l’histogramme. Que ce soit à gauche, à droite ou au milieu.

    couleur – Il définit la couleur des barres.

    rwidth – Il définit la largeur relative des barres de l’histogramme par rapport à celle du bac.

    log – le paramètre log définit une échelle logarithmique sur l’axe d’un histogramme.

    L’exemple suivant trace un histogramme avec les valeurs définies.

    from matplotlib import pyplot as plt
    
    x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5,  50, 60, 70, 80]
    
    plt.hist(x)
    plt.title(Histogram plot example')
    plt.xlabel('x axis')
    plt.ylabel('frequency')
    plt.show()
    

    Production:

    Sortie du tracé de l’histogramme dans Mathplotlib

    #4. Tracé linéaire dans Matplotlib

    Matplotlib utilise sa sous-bibliothèque appelée pyplot , qui est livrée avec diverses fonctions qui aident à sa mise en œuvre.

    Nous utilisons la fonction plot(), qui est une fonction générique fournie avec pyplot pour tracer les tracés linéaires et différents autres types de tracés linéaires, y compris les tracés courbes et les tracés multilignes. La création de ces différents types de tracés dépend des valeurs que vous transmettez à l’axe des ordonnées.

    Lors du traçage, importez matplotlib.pyplot et Numpy, qui dessinent les graphiques. La méthode plot(x,y) crée le tracé linéaire en passant des valeurs aléatoires aux arguments x et y.

    De plus, vous pouvez passer une variable d’étiquette qui étiquette le tracé. La fonction title nomme en outre le titre du tracé, tandis que les fonctions xlabel et ylabel nomment les axes. Enfin, la fonction show() affiche le tracé.

    Par exemple:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 5, 10)
    
    y = 3*x + 2
    plt.title('Line plot example')
    plt.xlabel('x axis')
    plt.ylabel('y axis')
    plt.plot(x, y)
    plt.show()

    Résultat:

    Sortie du tracé linéaire dans Mathplotlib

    L’attribut np.linspace renvoie sur le tracé, un ensemble de nombres régulièrement espacés sur un intervalle particulier pour les valeurs x. Cela créera un tableau de 10 valeurs comprises entre 0 et 5. Les valeurs y sont créées à partir de l’équation qui utilise les valeurs correspondantes de x.

    Création de nuages ​​de points

    Matplotlib utilise la méthode scatter() pour créer ce tracé.
    Cette méthode prend en compte les paramètres suivants.

    matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None) 

    Les paramètres x_axis_data et y_axis_data ne peuvent pas être laissés vides, contrairement au reste des paramètres qui peuvent être facultatifs et avoir None comme valeur. Alors que l’argument x_axis_data définit un tableau de données pour l’axe des x, y_axis_data définit un tableau de données pour l’axe des y.

    Un exemple de nuage de points dans matplotlib

    import matplotlib.pyplot as plt
     
    x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16]
     
    y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35]
    plt.title('Scatter plot example')
    plt.xlabel('x variable')
    plt.ylabel('y variable')
    plt.scatter(x, y, c ="green")
     
    # To show the plot
    plt.show()

    Sa sortie aimera :

    Sortie du nuage de points dans Mathplotlib

    Qu’est-ce que subplot() dans matplotlib

    La fonction subplot() peut être utilisée pour dessiner plusieurs tracés sur une seule figure Matplotlib. Cela permet de visualiser et de comparer les multiples tracés de la figure.

    Cette fonction renverra un tuple avec trois arguments ; lignes et colonnes comme premier et deuxième argument, respectivement, et l’index du tracé actuel comme troisième argument.

    Les lignes et les colonnes définissent clairement la disposition de Matplotlib.

    Par conséquent, plt.subplot(2, 1, 1) par exemple, tracera une figure Matplotlib avec deux lignes et une colonne, et ce tracé sera le premier tracé.

    D’autre part, plt.subplot(2, 1, 2) affiche un deuxième tracé avec deux lignes et une colonne.

    Tracer ces deux tracés les créera l’un au-dessus de l’autre, comme dans l’exemple ci-dessous.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(2, 1, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(2, 1, 2)
    plt.plot(x,y)
    
    plt.show()

    La sortie de l’exemple ci-dessus ressemblera à l’image ci-dessous.

    En utilisant un exemple différent, utilisons la fonction subplot pour tracer deux figures avec une ligne et deux colonnes. Cela affichera les tracés côte à côte.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(1, 2, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(1, 2, 2)
    plt.plot(x,y)
    
    plt.show()

    L’exemple ci-dessus affichera le résultat suivant.

    Eh bien, c’était intéressant et interactif, vous ne pensez pas ? 😃

    Derniers mots

    Matplotlib est une bibliothèque de visualisation très utilisée en Python. Son interactivité et sa facilité d’utilisation, même pour les débutants, en font un outil encore meilleur à utiliser pour tracer en Python.

    Cet article a couvert des exemples des différents graphiques que les fonctions fournies avec Matplotlib peuvent créer, y compris les graphiques circulaires, les graphiques à barres, les histogrammes et les nuages ​​de points.

    Bien sûr, Python possède plusieurs autres bibliothèques que les experts en apprentissage automatique et les scientifiques des données peuvent utiliser pour créer des visualisations.

    Vous pouvez explorer plus de tracés que vous pouvez créer avec Matplotlib et quelles fonctions vous utiliserez pour créer le tracé.

    Bon complot ! 📉📊

    x