使用matplotlib基于数据绘制椭圆

时间:2015-11-17 22:18:03

标签: python matplotlib ellipse

我试图以一种表示群集的方式在我的情节上绘制一个椭圆。 下面的代码绘制了第一张图片。它在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])

no ellipses

现在我想获得类似的东西:

enter image description here

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

1 个答案:

答案 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