在GNUPlot中显示均值和协方差

时间:2012-10-01 21:27:17

标签: gnuplot octave

我想在gnuplot中显示一组观察值及其均值和协方差。有谁知道我怎么可能做这样的事情?还有另一个程序可以很好地完成这项工作吗?像Octave这样的程序能够做到这一点吗?我看到获取统计数据的方法,但我没有找到任何关于显示这些统计数据的信息。

为了澄清,我想显示数据点(2d或3d),显示在数据集中绘制的平均值,并显示表示协方差的椭圆。

2 个答案:

答案 0 :(得分:1)

是的,你可以用Octave做到这一点。

## create 2x1000 matrix of random data with normal distribution
data = randn (1000, 2);

## plot data (the o is for dots)
plot (data(:,1), data(:,2), "o");

## get mean from each
mu   = mean (data);

## calculate covariance matrix
R    = cov (data);

## calculate the ellipse points
A     = chol (R, "lower");
theta = linspace (0, 2*pi, 1000);
x     = mu' + 2.5 .* A * [cos(theta); sin(theta)];

## plot the ellipse
hold on;
plot(x(1,:), x(2,:), "r", "LineWidth", 2);

答案 1 :(得分:0)

我在八度音阶4.0.2中遇到错误并更改了" x ="在carandraug的回答:

x     = mu' + 2.5 .* A * [cos(theta); sin(theta)];