185 votes

Comment puis-je supprimer l'axe supérieur et l'axe droit dans matplotlib ?

Au lieu du style d'axe "encadré" par défaut, je veux avoir uniquement les axes gauche et inférieur, c'est-à-dire.. :

+------+         |
|      |         |
|      |   --->  |
|      |         |
+------+         +-------

Cela devrait être facile, mais je ne trouve pas les options nécessaires dans la documentation.

15voto

La bibliothèque Seaborn est dotée de cette fonction. .despine() .

Ajoute juste :

import seaborn as sns

Créez maintenant votre graphique. Et ajoutez à la fin :

sns.despine()

Si vous regardez certaines des valeurs des paramètres par défaut de la fonction, elle supprime la colonne supérieure et la colonne droite et conserve la colonne inférieure et la colonne gauche :

sns.despine(top=True, right=True, left=False, bottom=False)

Consultez la documentation complémentaire ici : https://seaborn.pydata.org/generated/seaborn.despine.html

12voto

nikow Points 8887

Si vous n'avez pas besoin de ticks et autres (par exemple, pour le traçage d'illustrations qualitatives), vous pouvez également utiliser cette solution de contournement rapide :

Rendre l'axe invisible (par exemple avec plt.gca().axison = False ), puis les dessiner manuellement avec plt.arrow .

1 votes

Cela semble enlever les épines mais laisser les marques de tique en place. Avez-vous une idée de la façon d'enlever également les tiques ?

2 votes

@Rob : Vous avez raison, j'ai en fait utilisé une solution différente dans le script auquel je pensais. J'ai modifié ma réponse, cela devrait maintenant fonctionner, mais en général, la solution acceptée ci-dessus est meilleure.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X