设置图表的y轴与x轴比例相等
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()
来更新图表。