Определение эллипса вокруг точек данных

У меня есть вопрос / идея, которую я не знаю, как это сделать.

У меня есть точечный график X против Y

пример точечной диаграммы

Я могу нарисовать прямоугольник, а затем выбрать все точки в.

В идеале я хочу определить эллипс, так как он лучше фиксирует форму и исключает все точки, находящиеся за ее пределами.

Как это сделать? это вообще возможно? Я нарисовал сюжет используя matplotlib.

Я использовал линейную регрессию (LR), чтобы соответствовать точкам, но это не совсем то, что я ищу. Я хочу определить ПРИМЕРНО эллипс, чтобы охватить как можно больше точек внутри него, а затем исключить точки за его пределами. Как я могу определить уравнение / код, чтобы выбрать те, которые внутри?

1 ответ

Если у вас есть структура данных, представленная на графике, вы можете сделать это с помощью функции и понимания списка.

Если у вас есть данные в списке, как это:

# Made up data
lst = [
    # First element is X, second is Y.
    (0,0),
    (92,20),
    (10,0),
    (13,40),
    (27,31),
    (.5,.5),
]

def shape_bounds(x):
    """
    Function that returns lower and upper bounds for y based on x

    Using a circle as an example here.
    """
    r = 4
    # A circle is x**2 + y**2 = r**2, r = radius
    if -r <= x <= r:
        y = sqrt(r**2-x**2)
        return -y, y
    else:
        return 1, -1 # Remember, returns lower, upper.  
        # This will fail any lower < x < upper test.        

def in_shape(elt):
    """
    Unpacks a pair and tests if y is inside the shape bounds given by x
    """
    x, y = elt
    lower_bound, upper_bound = shape_bounds(x)
    if lower_bound < y < upper_bound:
        return True
    else:
        return False

# Demo walkthrough
for elt in lst:
    x, y = elt
    print x, y
    lower_bound, upper_bound = shape_bounds(x)
    if lower_bound < y < upper_bound:
        print "X: {0}, Y: {1} is in the circle".format(x, y)

# New list of only points inside the shape
new_lst = [x for x in lst if in_shape(x)]

Что касается эллипса, попробуйте изменить уравнение формы на основе этого

Другие вопросы по тегам