python - 如何绘制均值为 0 的协方差误差椭圆?
问题描述
我正在尝试绘制不确定椭圆,它是与平均值相差一个标准差的点的椭圆。我正在使用此代码来执行此操作: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()
如何绘制距离均值一个标准差的椭圆?
我试过了:
x = [0,1,0,1]
y = [0,0,1,1]
解决方案
推荐阅读
- graphics - DirectX12 反射未检测到常量缓冲区
- java - 毕加索图书馆加载我的图像太慢?
- windows - Batch file to move between symmetric folder structures
- macos - 如何重新获得对我的桌面的权限?苹果电脑
- adfs - Transforming a claim using multiple match RegEx
- r - mutate_at to replace NAs with 0
- ruby-on-rails - 使用 Rails 运行 byebug 会话并且服务器超时时,如何恢复文本/光标?
- haskell - 如何让这个函数懒惰地消耗它的输入比特流?
- c# - 自定义 AssemblyLoadContext 无法加载 Microsoft.AspNetCore.Components
- sql - 有什么方法可以从sql中获取句号