如何在Python matplotlib中均衡x轴和y轴的比例?

Sib*_*ing 95 python matplotlib

我想在SQUARE图上画线.

尺度x-axisy-axis应该是相同的.

例如,x的范围是0到10,屏幕上是10厘米.y必须也在0到10之间,也必须是10厘米.

即使我弄乱窗口大小,也必须保持SQUARE形状.

目前,我的图表与窗口大小一起缩放.

我怎么能实现这个目标?

更新:

我尝试了以下,但它没有用.

plt.xlim(-3, 3)
plt.ylim(-3, 3)
plt.axis('equal')
Run Code Online (Sandbox Code Playgroud)

tac*_*ell 139

你需要深入挖掘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()
Run Code Online (Sandbox Code Playgroud)

set_aspect的doc

  • 真棒!它确实像魅力一样.你能不能告诉我`plt.plot(range(5))`和`plt.gca().set_aspect('equal',adjustable ='box')`do,如果你不介意的话?另外,我注意到即使我没有`plt.draw()`,情节仍会显示出来.那有什么用呢? (4认同)

小智 53

plt.axis('scaled')
Run Code Online (Sandbox Code Playgroud)

适合我.

  • 抱歉, plt.axis('scaled') 在 Python 3.7 和 matplotlib 中对我不起作用 - matplotlib==3.1.0 但是, plt.axis('square') 有效! (7认同)

Dma*_*an2 17

尝试类似的东西:

import pylab as p
p.plot(x,y)
p.axis('equal')
p.show()
Run Code Online (Sandbox Code Playgroud)

  • pylab 已弃用 (2认同)

Ada*_*art 5

文档plt.axis()。这个:

plt.axis('equal')
Run Code Online (Sandbox Code Playgroud)

不起作用,因为它会更改轴的界限以使圆看起来是圆形。您想要的是:

plt.axis('square')
Run Code Online (Sandbox Code Playgroud)

这将创建具有相等轴的正方形图。