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

时间:2013-08-01 09:58:29

标签: python matplotlib

我希望在 SQUARE 图表上绘制线条。

x-axisy-axis的比例应该相同。

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

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

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

我怎么能实现这个目标?

更新

我尝试了以下操作,但它没有用。

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

5 个答案:

答案 0 :(得分:120)

你需要深入挖掘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 for set_aspect

答案 1 :(得分:49)

plt.axis('scaled')

适合我。

答案 2 :(得分:17)

尝试类似:

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

答案 3 :(得分:6)

请参见plt.axis()上的the documentation。这个:

plt.axis('equal')

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

plt.axis('square')

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

答案 4 :(得分:0)

您可以使用此方法将绘图拉伸为正方形:

fig = plt.figure(figsize=(1, 1))