% DENDROGRAM   樹形プロットを作成
%
%   DENDROGRAM(Z) は、Z で表される階層バイナリクラスタツリーの樹形プロットを
%   生成します。Z は、LINKAGE 関数で生成される (M-1)×3 の行列です。ここで 
%   M は、元のデータセットの観測数です。
% 
%   樹形は、階層ツリーの中のノードを結合した逆 U 字型をした図です。
%   WARD 連鎖 (関数 LINKAGE を参照) を除いて、各 U 字の高さは、結合されて
%   いる 2 つのクラスタの距離になります。元のデータセットに 30 以下の
%   データ点があった場合、樹木図内の各リーフは 1 つのデータ点に対応します。
%   30 より多いデータ点があった場合、木全体は煩雑になり、DENDROGRAM は、
%   必要に応じて低いブランチを折りたたみ、プロット内のいくつかのリーフが、
%   いくつかのデータ点に対応するようにします。
% 
%   DENDROGRAM(Z,P) は、ツリーの低いブランチを折りたたむことで、P 以下の
%   リーフノードしかもたない樹形を生成します。木全体を表示するには、P = 0 を
%   設定してください。
% 
%   H = DENDROGRAM(...) は、ラインのハンドル番号から構成されるベクトルを
%   出力します。
% 
%   [H,T] = DENDROGRAM(...) は、オリジナルデータの中の各観測に対するクラスタ
%   番号を含むサイズ M のベクトル T も出力します。樹形の底の部分がカット
%   オフされている場合、情報が失われます。T は、このような失われる情報を
%   含んでいます。たとえば、樹形のノード k に含まれている観測値を検索する
%   場合、find(T==k) を使います。オリジナルデータの中で P 個より観測値が
%   少ない場合、T は、たとえば、T =(1:M)' のようなそのままのマッピングに
%   なります。すなわち、各ノードは、単一のオブジェクトのみを含んでいます。
% 
%   [H,T,PERM] = DENDROGRAM(...) は、樹形を生成し、樹形の葉のノードラベル
%   の順列ベクトルを出力します。PERM は、水平の樹形上では左から右に、
%   垂直の樹形に対して下から上に並べられます。
%
%   [...] = DENDROGRAM(...,'COLORTHRESHOLD',T) は、T が 0 < T < max(Z(:,3))
%   の範囲内の場合に、連鎖 (linkage) がスカラ値 T よりも小さい樹形内の
%   ノードの各グループに固有の色を割り当てます。T が 0 に等しいかそれよりも
%   小さい場合、または T が最大連鎖よりも大きい場合、樹形は、1 つの色のみを
%   使用して描かれます。T は、'デフォルト' として、閾値を最大の連鎖の 70% 
%   として、例えば 0.7 * max(Z(:,3)) のように設定することもできます。
%
%   [...] = DENDROGRAM(...,'ORIENTATION',ORIENT) は、Figure ウィンドウ内に
%   樹形の方向を合わせます。以下のオプションを設定します。
%
%      'top'      --- 上から下 (デフォルト)
%      'bottom'   --- 下から上
%      'left'     --- 左から右
%      'right'    --- 右から左
%
%   [...] = DENDROGRAM(...,'LABELS',S) は、各観測に対して 1 つのレベルを
%   もつ文字列 S の文字配列、またはセル配列を受け入れます。単一の観測が
%   含まれるツリー内のいずれの葉も観測のラベルでラベル付けされます。
%
%   例:
%
%      rand('seed',12); 
%      X = rand(100,2); 
%      Y = pdist(X,'cityblock'); 
%      Z = linkage(Y,'average'); 
%      [H, T] = dendrogram(Z);
%
%   参考 LINKAGE, PDIST, CLUSTER, CLUSTERDATA, COPHENET, INCONSISTENT,
%        SILHOUETTE.


%   Copyright 1993-2007 The MathWorks, Inc.
