Figure Matplotlib avec Aspect Carré

Matplotlib est une librairie Python puissante qui permet de générer des graphes très rapidement et efficacement.

Pour autant, les réglages par défaut des figures affichées par matplotlib ne son pas toujours exactement satisfaisants.

Ainsi, matplotlib n’affiche pas par défaut des figures avec un aspect carré.

Or, il arrive que l’on veuille une figure dont l’apparence est carrée, surtout lorsque l’étendue des abscisses est la même que celle des ordonnées.

Matplotlib permet justement de forcer l’affichage carré d’une figure, avec des abscisses et des ordonnées de même longueur.

🚩 Problème :

Comment afficher une figure dont l’aspect est carré, avec matplotlib ?

Solution :

Utiliser l’instruction suivante avant de faire plt.show() :

plt.gca().set_aspect("equal")

🤠 Exemple :

On va donner ici un exemple très simple où l’on souhaite tracer les valeurs de 0 à 9 inclus en abscisses, contre les valeurs de 10 à 19 inclus en ordonnées.

Petit exercice de pensée : a priori, devrait-on avoir un affichage carré du graphe ?

(Solution : Oui, car l’étendue des valeurs des abscisses est égale à l’étendue des valeurs des ordonnées. En effet, 9 – 0 = 9 = 19 – 10.)

import matplotlib.pyplot as plt

x = range(10)
y = range(10, 20)

plt.plot(x, y)
plt.show()
Figure affichée par défaut

On voit que l’aspect n’est pas carré, alors que l’on s’attendrait à ce qu’il le soit.

➡️ Ce n’est pas satisfaisant !

Essayons maintenant avec la solution donnée précédemment.

import matplotlib.pyplot as plt

x = range(10)
y = range(10, 20)

plt.plot(x, y)
plt.gca().set_aspect("equal")
plt.show()
Figure avec aspect carré

Et voilà ! Notez qu’il a suffi d’une seule ligne, et l’on retombe sur nos pattes avec une figure carrée. 😊


Laisser un commentaire