Comment faire un tracé carré avec des axes égaux dans Matplotlib
-
set_aspect()
pour faire un tracé carré avec des axes égaux -
Méthode
axis()
pour générer un tracé carré
Nous pouvons définir le rapport hauteur / largeur d’un tracé en utilisant la méthode set_aspect()
pour en faire un tracé carré et la méthode axis()
peut également être utilisée pour créer un tracé carré avec des axes égaux dans Matplotlib.
set_aspect()
pour faire un tracé carré avec des axes égaux
Nous pouvons définir le rapport d’aspect en utilisant la fonction matplotlib.axes.Axes.set_aspect()
. Si nous utilisons "equal"
comme rapport d’aspect dans la fonction, nous obtenons un tracé avec la même mise à l’échelle des points de données aux unités de tracé pour l’axe X et l’axe Y.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(x, y)
plt.xlim(-3, 3)
plt.ylim(-3, 3)
ax.set_aspect("equal", adjustable="box")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
plt.xlim(-3, 3)
plt.ylim(-3, 3)
ax.set_aspect("equal")
Il définit à la fois l’axe X et l’axe Y pour avoir la même plage. Ensuite, ax.set_aspect('equal')
définit les deux axes comme étant égaux.
La méthode ci-dessus ne donne un tracé carré que lorsque les plages des deux axes sont définies pour être identiques. Pour générer un tracé carré dans le cas général, nous devons définir manuellement le rapport hauteur / largeur à l’aide de la commande suivante:
axes.set_aspect(1.0 / axes.get_data_ratio())
axes.get_data_ratio()
obtient le rapport des données brutes du tracé. La valeur de sa réciproque est passée à set_aspect()
pour rendre les axes égaux sans définir manuellement les limites des axes.
Code:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_subplot(111)
plt.plot(x, y)
ax.set_aspect(1.0 / ax.get_data_ratio(), adjustable="box")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
Méthode axis()
pour générer un tracé carré
Si nous passons "square"
comme argument à matplotlib.pyplot.axis()
, cela crée un tracé carré où les plages occupées pour les deux axes sont égales à la longueur du tracé.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-3, 3, 100)
y = np.sin(x)
plt.plot(x, y)
plt.axis("square")
plt.xlabel("x")
plt.ylabel("sinx")
plt.show()
ax.set_aspect('equal', adjustable='datalim')
. Les limites d’axe explicites définies par l’utilisateur ne sont pas respectées.Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticle connexe - Matplotlib Axes
- Comment faire pivoter le texte des étiquettes à cocher sur l'axe X dans Matplotlib
- Comment définir la taille de la police des étiquettes à cocher dans Matplotlib
- Comment ajouter une étiquette sur l'axe des y à l'axe des y secondaire dans Matplotlib
- Comment tracer des axes logarithmiques dans Matplotlib
- Comment définir des limites pour les axes dans Matplotlib