设置图表的y轴与x轴比例相等

1 投票
1 回答
801 浏览
提问于 2025-04-18 01:47
import numpy as np
import matplotlib.pyplot as plt
plt.figure(1)
plt.subplot(211)
xs = np.linspace(-5,5,500)
ys = np.sqrt(5**2 - xs**2)

plt.plot(xs,ys)
plt.plot(xs,-ys)

plt.subplot(212)
plt.plot(xs, xs**2)
plt.show()

这是我生成的代码,我在想如果我想保持上面的图表的x轴和y轴比例为1:1,这样无论这个图里面有多少个子图,球看起来总是圆的,该怎么做呢?

我在网上找了一下,似乎没有简单的解决办法……

1 个回答

2

当你创建子图的时候,可以告诉它一些信息:

plt.subplot(211, aspect='equal')

如果你已经创建了子图,那么你需要获取当前的坐标轴,这可以通过使用 plt.gca 来实现,然后调用 set_aspect 方法:

plt.gca().set_aspect('equal')

或者,你也可以从一开始就跟踪这些坐标轴:

ax = plt.subplot(211)
ax.set_aspect('equal')

你可能需要调用

plt.draw()

来更新图表。

撰写回答