用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。
我试图在我的地块上画一个椭圆来代表一个集群。 下面的代码绘制了第一张图片。它在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。