web-dev-qa-db-fra.com

Comment égaliser les échelles des axes x et y dans Python matplotlib?

Je souhaite dessiner des lignes sur un graphe SQUARE.

Les échelles de x-axis et y-axis devraient être identiques.

par exemple. x varie de 0 à 10 et l’écran affiche 10 cm. y doit également aller de 0 à 10 et doit également être de 10 cm.

La forme carrée doit être conservée, même si je déconne avec la taille de la fenêtre.

Actuellement, mon graphique est mis à l'échelle avec la taille de la fenêtre.

Comment puis-je y parvenir?

PDATE:

J'ai essayé ce qui suit, mais cela n'a pas fonctionné.

plt.xlim(-3, 3)
plt.ylim(-3, 3)
plt.axis('equal')
87
Sibbs Gambling

Pour ce faire, vous devez creuser un peu plus profondément dans l'API:

from matplotlib import pyplot as plt
plt.plot(range(5))
plt.xlim(-3, 3)
plt.ylim(-3, 3)
plt.gca().set_aspect('equal', adjustable='box')
plt.draw()

doc pour set_aspect

130
tacaswell
plt.axis('scaled')

fonctionne bien pour moi.

51
myx

Essayez quelque chose comme:

import pylab as p
p.plot(x,y)
p.axis('equal')
p.show()
17
Dman2

Voir la documentation sur plt.axis(). Cette:

plt.axis('equal')

ne fonctionne pas car cela modifie les limites de l'axe pour faire apparaître les cercles circulaires. Ce que tu veux c'est:

plt.axis('square')

Cela crée un tracé carré d'axes égaux.

0
Adam Stewart