Как нарисовать эллипс ошибки ковариации со средним 0? - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь нарисовать эллипс неопределенности, который представляет собой эллипс точек, которые на одно стандартное отклонение от среднего значения.Я использую этот код, чтобы сделать это: https://stackoverflow.com/a/25022642/7448860

Но вместо эллипса он рисует линию.

Я рисую 2 случайные величины (x, y), поэтомуразмер ковариационной матрицы равен 2 x 2. Для вычисления ковариационной матрицы я использую алгоритм фильтра Калмана, поэтому мне не нужно использовать np.cov ().

Код:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse

def eigsorted(cov):
    vals, vecs = np.linalg.eigh(cov)
    order = vals.argsort()[::-1]

    return vals[order], vecs[:,order]

x = [0]
y = [0]
cov = [[0.25, 0.5 ], [0.5, 1.]]

nstd = 1
ax = plt.subplot(111)

vals, vecs = eigsorted(cov)

theta = np.degrees(np.arctan2(*vecs[:,0][::-1]))
w, h = 2 * nstd * np.sqrt(vals)
ell = Ellipse(xy=(np.mean(x), np.mean(y)),
              width=w, height=h,
              angle=theta, color='black')

ell.set_facecolor('none')
ax.add_artist(ell)
plt.scatter(x, y)
plt.show()

Вывод: enter image description here

Как мне вывести эллипс на одно стандартное отклонение от среднего значения?

Я пытался:

x = [0,1,0,1]
y = [0,0,1,1]

Но, это графики: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...