matplotlib 基于数据绘制椭圆

ekqde3dh  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(125)

我试图在图上画一个椭圆来表示一个簇。下面的代码绘制了第一张图。它在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])

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

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

7ivaypg9

7ivaypg91#

椭圆的方程是$\pm B \sqrt{1 -(x-x 0)^2/a^2} + y 0 $,其中(x 0,y 0)是椭圆的中心。(更多细节见Draw ellipses around points)。
可以通过x2 = max(native_f1)x1 = min(native_f1)y2 = max(native_f2)y1 = min(native_f2)找到椭圆的边。
中心(x 0,y 0)为( (x2+x1)/2, (y2+y1)/2 )。y方向(b)轴的比例为(y2-y1)/2,x方向(a)轴的比例为(x2-x1)/2。根据需要使用模糊因子进行调整。
你也可以使用matplotlib. patches. Ellipse。

相关问题