用matplotlib根据数据绘制椭圆

Draw ellipse based on data with matplotlib

我试图在我的地块上画一个椭圆来代表一个集群。 下面的代码绘制了第一张图片。它在for循环中,但并不重要

native_f1 = [some values here]
native_f2 = [some values here]

ax = plt.subplot(2, 2, index)
ax.scatter(native_f1, native_f2, s=40)
axes = plt.gca()
axes.set_xlim([min(native_f1) - 800, max(native_f1) + 800])
axes.set_ylim([min(native_f2) - 800, max(native_f2) + 800])

现在我想得到这样的东西:

如何根据用于绘制这些图形的值绘制椭圆? 谢谢

有关 ellipse is $\pm b \sqrt{1 - (x-x0)^2/a^2} + y0$, where (x0,y0) is the center of the ellipse. (See Draw ellipses around points 的方程式,了解更多详情)。

您可以通过 x2 = max(native_f1)x1 = min(native_f1)y2 = max(native_f2)y1 = min(native_f2) 找到椭圆的边。

中心 (x0,y0) 将为 ( (x2+x1)/2, (y2+y1)/2 )。轴在 y 方向 (b) 的比例将为 (y2-y1)/2,轴在 x 方向 (a) 的比例将为 (x2-x1)/2。根据需要调整软糖因素。

您也可以使用matplotlib.patches.Ellipse