2015-11-17 170 views
1

我試圖在我的情節中以這種方式繪製一個橢圓來表示一個集羣。這裏下面的代碼繪製第一張圖片。這是在for循環內,但它並不重要基於matplotlib的數據繪製橢圓

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

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

+0

工作就像一個魅力!謝謝 – davideberdin