使用matplotlib.axis('equal')时设置下限

3 投票
1 回答
1353 浏览
提问于 2025-04-17 23:09

我想用matplotlib来绘制数据,让x轴和y轴的增量长度相等。这样做是没问题的:

 ax1.axis('equal')

这里的ax1是一个子图。

但是像这样设置下限就不行了:

ax1.set_xlim(left=lowerlimit)
ax1.set_ylim(bottom=lowerlimit)

我还尝试过类似的方式,但也没成功:

ax1.axis('equal', xmin=lowerlimit,ymin=lowerlimit)

有没有人能帮帮我?

编辑:这里有个简单的例子来展示这个问题:

import matplotlib.pyplot as plt
fig, ax1 = plt.subplots()
x = [0,1,2,3,4,5]
y = [0,-1,-3,-2,-1,-2]
ax1.plot(x,y)
ax1.set_xlim(0,6)
ax1.set_ylim(0,-6)
ax1.axis('equal')
ax1.set_ylim(bottom=0)
plt.show()

尽管我在调用ax1.set_ylim(bottom=0)后明确设置了y轴的下限为0,但图的下限却显示为-1。

1 个回答

1

在你的最小可重现示例中,把:

ax1.axis('equal')

换成:

ax1.set_aspect('equal',adjustable='box')

在这里输入图片描述

撰写回答