如何使x轴和y轴的刻度相等呢?

我如何创建一个图形,其中x-axisy-axis的尺度是相同的?

即使我改变了窗口大小,也应该保持这个相等的比例。目前,我的图形与窗口大小一起缩放。

我试着:

plt.xlim(-3, 3)
plt.ylim(-3, 3)
plt.axis('equal')
307963 次浏览

试着这样做:

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

以以下方式使用Axes.set_aspect:

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

很适合我。

参见plt.axis()上的的文档。这样的:

plt.axis('equal')

行不通,因为它改变了轴的极限,使圆看起来是圆的。你想要的是:

plt.axis('square')

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

你可以使用下面的方法将图形拉伸到平方:

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