【发布时间】:2010-08-05 16:40:15
【问题描述】:
我想在MATLAB中重现下图:
有两类点具有 X 和 Y 坐标。我想用一个椭圆围绕每个类,标准偏差的一个参数决定了椭圆沿着轴走多远。
这个图是用另一个软件创建的,我不太明白它是如何计算椭圆的。
这是我用于此图的数据。第 1 列是类,第 2 - X,第 3 - Y。我可以使用gscatter 自己绘制点。
A = [
0 0.89287 1.54987
0 0.69933 1.81970
0 0.84022 1.28598
0 0.79523 1.16012
0 0.61266 1.12835
0 0.39950 0.37942
0 0.54807 1.66173
0 0.50882 1.43175
0 0.68840 1.58589
0 0.59572 1.29311
1 1.00787 1.09905
1 1.23724 0.98834
1 1.02175 0.67245
1 0.88458 0.36003
1 0.66582 1.22097
1 1.24408 0.59735
1 1.03421 0.88595
1 1.66279 0.84183
];
gscatter(A(:,2),A(:,3),A(:,1))
仅供参考,here 是关于如何绘制椭圆的 SO 问题。所以,我们只需要知道绘制它的所有参数。
更新:
我同意可以将中心计算为 X 和 Y 坐标的平均值。可能我必须对每个类使用主成分分析(PRINCOMP)来确定角度和形状。还在想……
【问题讨论】:
-
即使您不知道原始图中的椭圆是如何计算的,您也可以稍微解释一下它应该是什么意思?例如,它不仅仅是围绕点,例如灰点,并非所有点都包含在椭圆中。如果您什么都不知道,我建议将点的重心作为椭圆的中心作为起点。面积的第二个时刻可以为您提供主轴的方向。
-
@groovingandi:基本上这意味着,如果椭圆以标准差 3 绘制,则在正态分布下,它将包含大约 99% 的数据点。图中的椭圆是使用 STD=2 生成的。
标签: matlab plot ellipse normal-distribution standard-deviation