0

よろしくお願いいたします。

Matlab では、boxplot コマンドはグループ化変数 G を受け入れることができます。これは次のとおりです。

boxplot(X,G) は、1 つ以上のグループ化変数 G を指定し、同じ G 値を共有する X 値のセットごとに個別のボックスを作成します。グループ化変数は、X の要素ごとに 1 つの行、または X の列ごとに 1 つの行を持たなければなりません。ベクトル、文字配列、文字列のセル配列、またはベクトル categorical 配列を使用して G に単一のグループ化変数を指定します。{G1 G2 G3} などのこれらの変数タイプのセル配列を使用するか、行列を使用して、G で複数のグループ化変数を指定します。複数のグループ化変数を使用する場合、それらはすべて同じ長さでなければなりません。グループ化変数に NaN 値または空の文字列を含むグループは省略され、他のパラメーターによって考慮されるグループの数にはカウントされません。

ただし、このパラメーターは、boxplot の Octave 実装から欠落しているようです。たとえば、次のベクトルがあるとします。

X = [1.34、2.89、1.28、2.98、8.84、8.38、3.26、4.06、42.48、3.19、3.63、3.23]; % ずっと長い

G = [1, 3, 3, 3, 23, 15, 15, 23, 23, 20, 23, 23]; % ずっと長く

matlab で boxplot(X, G) を実行すると、X の値 (同じグループ内) が同じボックスにまとめられるプロットが作成されます。

Octave でこれを回避する方法はありますか?

4

2 に答える 2

0

サンティアゴが述べたように、それらをセルにグループ化する必要がありますが、次の方法で簡単に行うことができます

boxplot({X, G})

http://octave.sourceforge.net/statistics/function/boxplot.htmlの例を参照してください。 {}に注意してください。

于 2016-07-16T17:32:34.790 に答える
0

Octave boxplot では、セル ベクトルを入力として使用できます。次のように、事前に cell ベクトルを作成できます。

uniG = unique(G);
l = length(uniG);
for i = 1:l
  XG{i} = X(G == uniG(i));
end
boxplot(XG);
于 2014-01-06T08:56:28.600 に答える