我有一个二维数组 (x, y) 的点,我想绘制一个包含该点 80% 的圆,并且我想知道所得圆的半径。有没有办法用 python 来做到这一点?
我一直在寻找一种方法来做到这一点,但没有成功。我很抱歉没有尝试,但我完全迷失了在不给圆半径的情况下取 80% 的条件。
Update:
我尝试过以下方法:
import matplotlib.pyplot as plt
x=[1, 1.15, 1.23, 0.92, 1.31, 1.18, 1.27, 1.07, 3, 3.2]
y=[1.17, 0.95, 1.04, 1.32, 1, 1.22, 1.28, 0.99, 1, 1.2]
plt.plot(x, y, 'bo')
circle=plt.Circle((1.1, 1.12), 0.2, color='g', fill=False)
fig = plt.gcf()
fig.gca().add_artist(circle)
plt.axis([0, 3.5, 0, 3.5])
plt.show()
这是我想要获得的情节:
在这个例子中,我有 10 个点,圆是内部有 8 个点的最小圆。我已经通过肉眼完成了这个例子,但我想要的是:给定 x 和 y,获取与至少 80% 的点在其内部的条件相匹配的圆的参数(中心位置和半径),即how 必须是包含至少 80% 点的最小圆。这可能吗?