3

matlab で多次元クラスター分析を実行しました。各クラスターについて、平均と共分散を計算しました (条件付きの独立性を仮定)。

生データから 2 次元または 3 次元を選択し、散布図または散布図 3 にプロットしました。ここで、クラスター平均と対応する標準偏差を同じプロットに追加したいと思います。

言い換えれば、エラーバーを含むいくつかのデータポイントを散布図に追加したいと考えています。

この質問は、ほとんど私が欲しいものです。しかし、ボックスの代わりにバーを使用しても問題ありません。その場合、より少ない労力でそれを行う組み込みの方法があるのではないかと思います。

それを行う方法に関する提案はありますか?

4

2 に答える 2

2

線分がおそらく目的に十分であることに気付いたら (そして、ポイントの数によっては、ひげを使用した通常のエラーバーよりも見苦しくないかもしれません)、かなり単純なことを行うことができます (これは、おそらくすべてのプロットパッケージに適用されます. MATLAB だけではありません)。

散布図をプロットしてから、エラーバーに対応する必要なすべての線分をプロットするループを記述します (または、ドットまたはエラーが必要かどうかに応じて、最初にエラーバーを作成してから散布図を作成したように、逆の順序で実行します)上のバー)。

以下は単純な MATLAB コードと、エラー バーを 2 次元で示す図の例です (退屈でほぼ線形で申し訳ありません)。

ここに画像の説明を入力

ご覧のとおり、各軸のエラー バーを異なる色でプロットして視覚化することができます。

function scatterError(x, y, xe, ye, varargin)
%Brandon Barker 01/20/2014

nD = length(x);

%Make these defaults later:
dotColor = [1 0.3 0.3]; % conservative pink
yeColor = [0, 0.4, 0.8]; % bright navy blue
xeColor = [0.35, 0.35, 0.35]; % not-too-dark grey
dotSize = 23;

figure();
set(gcf, 'Position', get(0,'Screensize')); % Maximize figure.
set(gca, 'FontSize', 23);
hold all;

for i = 1:nD
    plot([(x(i) - xe(i)) (x(i) + xe(i))], [y(i) y(i)], 'Color', xeColor);
    plot([x(i) x(i)], [(y(i) - ye(i)) (y(i) + ye(i))], 'Color', yeColor);
end

scatter(x, y, dotSize, repmat(dotColor, nD, 1));
set(gca, varargin{:});
axis square;

追加の作業を行うことで、本当に必要な場合にエラー バーにひげを追加するのはそれほど難しくありません。

于 2014-01-23T00:21:56.367 に答える