我试图以一种表示群集的方式在我的情节上绘制一个椭圆。 下面的代码绘制了第一张图片。它在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])
现在我想获得类似的东西:
如何根据用于绘制这些图形的值绘制椭圆? 谢谢
答案 0 :(得分:1)
ellipse的等式是$ \ pm b \ sqrt {1 - (x-x0)^ 2 / a ^ 2} + y0 $,其中(x0,y0)是椭圆的中心。 (有关详细信息,请参阅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。