Supprimer les axes dans Matplotlib : un guide complet
Published on
Matplotlib est une puissante bibliothèque Python pour la visualisation de données, mais pour créer des graphiques vraiment efficaces, il est parfois nécessaire de supprimer certains éléments tels que les axes. Si vous vous demandez comment supprimer les axes dans Matplotlib, ce guide est le point de départ idéal. Plongeons dans la façon de rendre vos graphiques éclatants en supprimant les éléments inutiles, en suivant les meilleures pratiques de la documentation de Matplotlib et de la sagesse de la communauté.
Pour commencer : qu'est-ce que les axes dans Matplotlib ?
Avant de commencer, il est important de comprendre ce que nous entendons par 'axes' dans Matplotlib. Le terme 'axes' fait référence aux axes x et y sur un graphique, y compris les étiquettes, les graduations et la ligne bordant la zone du graphique. Lorsque vous supprimez les axes, vous obtenez un graphique propre et minimaliste qui se concentre sur la présentation des données sans distractions supplémentaires.
Pourquoi supprimer les axes ?
Il existe plusieurs raisons pour lesquelles vous pourriez vouloir supprimer les axes d'un graphique Matplotlib. La raison la plus courante est peut-être de créer un aspect visuel plus propre et plus simple. En supprimant les axes, les lignes de grille et les étiquettes, vous pouvez aider les spectateurs à se concentrer sur la partie la plus cruciale de votre visualisation : les données.
Suppression des axes : les bases
Maintenant, passons directement au cœur du sujet : comment supprimer les axes dans Matplotlib. Le processus est assez simple, ne nécessitant que quelques lignes de code. Considérez cet exemple de base :
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y)
plt.gca().set_axis_off()
plt.show()
Dans ce script, nous utilisons la fonction gca()
pour obtenir les axes actuels, puis nous appelons la méthode set_axis_off()
pour désactiver les axes. Après avoir exécuté ce script, vous devriez voir un graphique linéaire sans axes visibles.
Suppression des axes et enregistrement de la figure
Que faire si vous souhaitez enregistrer votre graphique sans axes ? Matplotlib offre une méthode simple pour enregistrer vos graphiques dans un fichier. Voici comment vous pouvez enregistrer un graphique sans axes :
plt.plot(x, y)
plt.gca().set_axis_off()
plt.savefig('mon_graphique.png', bbox_inches='tight', pad_inches=0)
plt.close()
La fonction savefig()
est utilisée pour enregistrer la figure actuelle, et nous passons le nom de fichier 'mon_graphique.png' en tant qu'argument. Les paramètres bbox_inches='tight'
et pad_inches=0
suppriment les marges supplémentaires autour du graphique dans l'image enregistrée. Après avoir exécuté ce script, un nouveau fichier nommé 'mon_graphique.png' devrait apparaître dans votre répertoire courant, contenant votre graphique enregistré sans axes.
Avancé : suppression des axes des sous-graphiques
Jusqu'à présent, nous avons discuté de la suppression des axes d'un seul graphique. Mais que faire si vous avez plusieurs sous-graphiques et que vous souhaitez supprimer les axes de tous, ou d'un seul en particulier ? Voici comment faire :
fig, axs = plt.subplots(2, 2)
for ax in axs.flat:
ax.set_axis_off()
plt.savefig('sous-graphiques_sans_axes.png', bbox_inches='tight', pad_inches=0)
plt.close()
Dans ce code, nous créons une grille de sous-graphiques 2x2 à l'aide de la fonction plt.subplots()
, puis nous itérons sur chaque sous-graphique (accédé avec axs.flat
), en supprimant les axes avec ax.set_axis_off()
. La figure est ensuite enregistrée comme précédemment, créant un fichier image avec plusieurs sous-graphiques, chacun sans axes.
Alternatives à la suppression des axes : ajustement de l'apparence des axes
Dans certains cas, vous voudrez peut-être conserver les axes mais les rendre moins visibles. Matplotlib offre de nombreuses options pour personnaliser l'apparence des axes. Voici un exemple de la façon de rendre les axes moins apparents en réduisant l'épaisseur de la ligne et en changeant la couleur :
ax = plt.gca()
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_linewidth(0.5)
ax.spines['left'].set_linewidth(0.5)
ax.spines['right'].set_color('none')
Dans ce script, nous obtenons d'abord les axes actuels avec plt.gca()
. Ensuite, nous utilisons la propriété spines
pour accéder aux quatre côtés des axes ('top', 'bottom', 'left' et 'right'). Nous appelons ensuite set_color('none')
pour supprimer les côtés supérieur et droit des axes, et set_linewidth(0.5)
pour rendre les côtés inférieur et gauche plus fins.
Alternative à Matplotlib : Visualiser les données avec PyGWalker
En plus d'utiliser Matplotlib pour visualiser vos dataframes pandas, voici une alternative, une bibliothèque Python Open Source qui peut vous aider à créer des visualisations de données avec facilité : PyGWalker (opens in a new tab).
Plus besoin de réaliser des traitements compliqués avec du code Python, importez simplement vos données et faites glisser-déposer les variables pour créer toutes sortes de visualisations de données ! Voici une vidéo de démonstration rapide sur son utilisation :
Voici comment utiliser PyGWalker dans votre Jupyter Notebook :
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Vous pouvez également l'essayer dans Kaggle Notebook/Google Colab :
PyGWalker est construit grâce au soutien de notre communauté Open Source. N'oubliez pas de consulter PyGWalker GitHub (opens in a new tab) et de nous donner une étoile !
Conclusion
Supprimer les axes dans Matplotlib peut vous aider à créer des visualisations plus propres et impactantes en attirant l'attention sur les données. Ce guide vous a montré comment supprimer les axes d'un seul graphique ou de plusieurs sous-graphiques, ainsi que comment ajuster l'apparence des axes pour les rendre moins gênants. Avec ces techniques dans votre boîte à outils, vous êtes prêt à créer des graphiques minimalistes et époustouflants avec Matplotlib.
FAQ
Q : Y a-t-il des cas où il n'est pas conseillé de supprimer les axes dans Matplotlib ?
Oui, il arrive parfois que supprimer les axes rende difficile l'interprétation d'un graphique, notamment lorsque l'échelle ou les proportions des données sont importantes. Vous devez toujours prendre en compte les besoins de votre public et la nature de vos données lorsque vous décidez de supprimer les axes.
Q : Puis-je supprimer les axes des graphiques créés avec Seaborn, qui est basé sur Matplotlib ?
Oui, vous pouvez supprimer les axes des graphiques Seaborn de la même manière que les graphiques Matplotlib. Seaborn utilise Matplotlib en interne, donc les mêmes commandes fonctionneront.
Q : Puis-je toujours ajouter un titre à mon graphique après avoir supprimé les axes ?
Oui, la suppression des axes n'affecte pas la possibilité d'ajouter un titre à votre graphique. Vous pouvez utiliser la fonction plt.title()
pour ajouter un titre à tout moment.