Skip to content
Tutoriels
Matplotlib
Création de graphiques époustouflants pour les Dataframes avec Matplotlib

Maîtriser Matplotlib et PyGWalker : Des graphiques époustouflants avec les Dataframes en Python

La visualisation des données est une partie importante de la science des données, car cela nous aide à comprendre les données plus facilement et à prendre des décisions plus éclairées. Dans ce guide complet, vous pouvez apprendre à utiliser Matplotlib pour créer des graphiques époustouflants à partir de Dataframes Pandas, personnaliser vos visualisations et les enregistrer pour les partager. Explorez des techniques de tracé de base et avancées, et découvrez l'alternative open-source PyGWalker, pour une expérience améliorée et conviviale. Rehaussez vos compétences en analyse de données grâce à notre tutoriel étape par étape.

Qu'est-ce que Matplotlib ?

Matplotlib est une bibliothèque Python permettant de créer des visualisations statiques, animées et interactives en Python. Il offre une large gamme d'outils pour créer différents types de graphiques, tels que des graphiques linéaires, des graphiques de dispersion, des graphiques à barres, des histogrammes, etc. Il permet également de personnaliser les graphiques, notamment en modifiant les couleurs, les étiquettes, les polices, etc.

Graphiques de base avec Matplotlib

Pour commencer avec Matplotlib, nous allons d'abord importer la bibliothèque et créer un simple dataframe Pandas :

import matplotlib.pyplot as plt
import pandas as pd

# Créer un simple dataframe Pandas
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)

Nous pouvons ensuite créer un graphique linéaire de base avec Matplotlib en utilisant la fonction plot :

plt.plot(df['x'], df['y'])
plt.show()

Cela affichera un simple graphique linéaire de nos données.

Nous pouvons également personnaliser notre graphique en ajoutant des étiquettes, en ajustant les couleurs et en changeant le style de la ligne :

plt.plot(df['x'], df['y'], color='red', linestyle='dashed', linewidth=2, marker='o')
plt.xlabel('Axe X')
plt.ylabel('Axe Y')
plt.title('Graphique linéaire simple')
plt.show()

Cela affichera un graphique linéaire personnalisé avec des étiquettes et un titre.

Graphique linéaire Matplotlib avec un Dataframe

Pour créer un graphique linéaire avec Matplotlib, nous pouvons utiliser la fonction plot :

# Créer un dataframe Pandas avec plusieurs colonnes
data = {'x': [1, 2, 3, 4, 5], 'y1': [2, 4, 6, 8, 10], 'y2': [1, 3, 5, 7, 9]}
df = pd.DataFrame(data)

# Créer un graphique linéaire avec plusieurs lignes
plt.plot(df['x'], df['y1'], label='y1')
plt.plot(df['x'], df['y2'], label='y2')
plt.legend()
plt.show()

Cela affichera un graphique linéaire avec plusieurs lignes.

Graphique à barres Matplotlib avec un Dataframe

Pour créer un graphique à barres avec Matplotlib, nous pouvons utiliser la fonction bar :

# Créer un dataframe Pandas avec plusieurs colonnes
data = {'x': ['A', 'B', 'C', 'D', 'E'], 'y1': [2, 4, 6, 8, 10], 'y2': [1, 3, 5, 7, 9]}
df = pd.DataFrame(data)

# Créer un graphique à barres
fig, ax = plt.subplots()
ax.bar(df['x'], df['y1'], label='y1')
ax.bar(df['x'], df['y2'], label='y2')
ax.legend()
plt.show()

Dans cet exemple, nous créons un dataframe Pandas avec deux colonnes 'y1' et 'y2', et une colonne catégorique 'x'. Ensuite, nous traçons deux barres pour chaque valeur de 'x', une pour 'y1' et une autre pour 'y2'. Nous ajoutons également une légende au graphique pour distinguer les barres.

Graphique de dispersion Matplotlib avec un Dataframe

Les graphiques de dispersion sont utiles pour montrer la relation entre deux variables continues. Nous pouvons utiliser Matplotlib pour créer des graphiques de dispersion avec des dataframes Pandas en utilisant la fonction scatter.

# Créer un dataframe Pandas avec deux colonnes
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)

# Créer un graphique de dispersion
fig, ax = plt.subplots()
ax.scatter(df['x'], df['y'])
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()

Dans cet exemple, nous créons un dataframe Pandas avec deux colonnes 'x' et 'y'. Ensuite, nous traçons un graphique de dispersion de 'x' par rapport à 'y'. Nous définissons également les étiquettes pour les axes x et y.

Augmenter la taille du graphique dans Matplotlib

Parfois, nous devons augmenter la taille du graphique pour le rendre plus lisible ou afin d'inclure plus d'informations. Nous pouvons le faire en définissant la taille de la figure dans Matplotlib.

# Créer un dataframe Pandas avec une colonne
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)

# Créer un graphique linéaire avec une taille augmentée
fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(df['x'], df['y'])
ax.set_xlabel('x')
ax.set_ylabel('y')
plt.show()

Dans cet exemple, nous créons un dataframe Pandas avec deux colonnes 'x' et 'y'. Ensuite, nous traçons un graphique linéaire de 'x' par rapport à 'y' avec une taille plus grande de 10 sur 6. Nous définissons également les étiquettes pour les axes x et y.

Couleur des barres dans un graphique à barres Matplotlib basée sur la valeur

Nous pouvons personnaliser les couleurs des barres dans un graphique à barres Matplotlib en fonction des valeurs qu'elles représentent. Par exemple, nous pouvons définir la couleur de la barre en rouge si la valeur est négative et en vert si la valeur est positive.

# Créer un dataframe Pandas avec une colonne
data = {'x': ['A', 'B', 'C', 'D', 'E'], 'y': [-2, 4, -6, 8, -10]}
df = pd.DataFrame(data)

# Créer un graphique à barres avec des couleurs basées sur la valeur
fig, ax = plt.subplots()
colors = ['r' if y < 0 else 'g' for y in df['y']]
ax.bar(df['x'], df['y'], color=colors)
ax.set_xlabel('Étiquette X')
ax.set_ylabel('Étiquette Y')
ax.set_title('Graphique à barres avec des couleurs basées sur la valeur')
plt.show()

Cela produira un graphique à barres avec des barres rouges pour les valeurs négatives et des barres vertes pour les valeurs positives.

Graphique Matplotlib sous forme de tableau

En plus de créer des graphiques, Matplotlib peut également être utilisé pour créer des tableaux à partir de dataframes Pandas. Cela peut être utile pour afficher des statistiques récapitulatives ou d'autres données tabulaires à côté de vos graphiques.

Pour créer un tableau en utilisant Matplotlib, nous pouvons utiliser la fonction table. Voici un exemple de création d'un tableau à partir d'un dataframe Pandas :

# Créer un dataframe Pandas
data = {'Nom': ['Alice', 'Bob', 'Charlie', 'David'],

Voici le fichier markdown traduit en français :

'Age': [25, 30, 35, 40],
'Salaire': [50000, 60000, 70000, 80000]}
df = pd.DataFrame(data)
 
# Créer une table
fig, ax = plt.subplots()
ax.axis('off')
ax.axis('tight')
ax.table(cellText=df.values, colLabels=df.columns, loc='center')
fig.tight_layout()
plt.show()

Cela va créer une table à partir du DataFrame Pandas et l'afficher dans un graphique Matplotlib.

Enregistrer et exporter des graphiques

Une fois que vous avez créé votre graphique en utilisant Matplotlib, vous souhaiterez peut-être l'enregistrer sur le disque ou l'exporter dans un format de fichier pouvant être facilement partagé ou inclus dans un rapport. Pour cela, Matplotlib propose plusieurs méthodes pour enregistrer et exporter des graphiques.

Une méthode courante pour enregistrer des graphiques consiste à utiliser la fonction savefig. Cette fonction vous permet de spécifier le format de fichier, tel que PNG ou PDF, et la résolution du graphique. Voici un exemple d'utilisation de la fonction savefig :

# Créer un graphique
plt.plot([1, 2, 3, 4])
plt.ylabel('quelques nombres')
 
# Enregistrer le graphique dans un fichier
plt.savefig('mon_graphique.png', dpi=300)

Cela enregistrera le graphique sous la forme d'un fichier PNG avec une résolution de 300 points par pouce (dpi).

Une autre méthode d'exportation des graphiques consiste à les copier dans le presse-papiers. Matplotlib fournit une fonction appelée savefig qui peut enregistrer la figure actuelle dans un fichier ou dans le presse-papiers du système. Voici un exemple d'utilisation de la fonction savefig pour copier un graphique dans le presse-papiers :

# Créer un graphique
plt.plot([1, 2, 3, 4])
plt.ylabel('quelques nombres')
 
# Copier le graphique dans le presse-papiers
plt.savefig('presse-papiers', bbox_inches='tight', pad_inches=0)

Cela copiera le graphique dans le presse-papiers, qui pourra ensuite être collé dans une autre application.

Utiliser PyGWalker comme alternative open source à Matplotlib

Si vous souhaitez visualiser vos données avec Python Pandas, il existe un package open source d'analyse et de visualisation de données qui peut répondre à vos besoins : PyGWalker (opens in a new tab).

Pour tester PyGWalker dès maintenant, vous pouvez exécuter PyGWalker dans Google Colab (opens in a new tab), Binder (opens in a new tab) ou Kaggle (opens in a new tab).

PyGWalker est open source. Vous pouvez consulter la page GitHub de PyGWalker (opens in a new tab) et lire l'article Towards Data Science (opens in a new tab) à son sujet.

Commencez avec PyGWalker dans Jupyter Notebook

PyGWalker peut simplifier votre flux de travail d'analyse et de visualisation de données dans Jupyter Notebook. En apportant une interface légère et facile à utiliser plutôt qu'une analyse de données à l'aide de Python. Les étapes sont simples :

Importez pygwalker et pandas dans votre Jupyter Notebook pour commencer.

import pandas as pd
import pygwalker as pyg

Vous pouvez utiliser pygwalker sans modifier votre flux de travail existant. Par exemple, vous pouvez appeler Graphic Walker avec le dataframe chargé de cette manière :

df = pd.read_csv('./bike_sharing_dc.csv', parse_dates=['date'])
gwalker = pyg.walk(df)

Vous pouvez facilement créer ce type de graphiques avec votre dataframe pandas sans interface graphique :

Diagramme en barres (opens in a new tab)Diagramme en ligne Diagramme en aires (opens in a new tab)
Trajectoire Nuage de points (opens in a new tab)Cercle
Graphique à barres inversées Rectangle Diagramme en arche
Boîte à moustaches (opens in a new tab)Carte thermique (opens in a new tab)

Vous pouvez explorer notre Galerie de visualisation des données pour plus d'exemples.

Redimensionner un graphique avec PyGWalker

Vous pouvez facilement redimensionner un graphique avec votre curseur de souris.

Redimensionner un graphique

Modifier le type de graphique

Un graphique en ligne peut mieux montrer les tendances des chiffres des utilisateurs enregistrés qu'un graphique à barres. Pour passer du graphique existant à un graphique en ligne, cliquez sur l'option Mark Types dans la barre d'outils et choisissez Line.

Changer le type de graphique

Créer une vue concaténée

Vous pouvez vouloir comparer les différences entre les utilisateurs enregistrés et occasionnels. Il suffit d'ajouter plus de mesures aux lignes/colonnes et de les comparer.

Créer une vue concaténée

N'oubliez pas de jeter un coup d'œil à un outil d'analyse de données automatisé plus avancé, basé sur l'IA : RATH (opens in a new tab). RATH est également open source et a hébergé son code source sur GitHub (opens in a new tab).

Conclusion

En conclusion, Matplotlib est un puissant outil de visualisation de données qui peut être utilisé pour créer des graphiques époustouflants à partir de DataFrames Pandas. Dans cet article, nous avons abordé les bases de Matplotlib et PyGWalker pour les graphiques, notamment comment créer des graphiques basiques et avancés, personnaliser les graphiques, enregistrer les graphiques sur le disque et créer des tables à partir de DataFrames. En utilisant Matplotlib et PyGWalker, les scientifiques des données peuvent améliorer leurs compétences en visualisation de données et obtenir des insights à partir de leurs données. N'oubliez pas de continuer à pratiquer et à explorer les différentes fonctionnalités de Matplotlib et PyGWalker pour tirer le meilleur parti de vos données.

📚