3

樹状図を円弧のある放射状の線で表現したいと思います。

これまでに試しました

t2=linkage(squareform(t1),'single')
dendrogram(t2,0,'colorthreshold',0.5)

そして出力をhttp://i48.tinypic.com/1zpgnyq.jpg

下の画像のように、MATLABで放射状樹状図と同じように表現する方法を教えてください。

http://i45.tinypic.com/ebaag2.png

4

3 に答える 3

6

MATLAB CentralのPolar樹状図関数を試すことができます:http://www.mathworks.co.uk/matlabcentral/fileexchange/21983-draw-a-polar-dendrogram

それがあなたのために働くことを願っています!

于 2013-02-14T01:12:07.127 に答える
2

Matlabには、放射状樹状図を作成するための組み込み関数がありません。すばやく検索すると、階層ランダムグラフに関するページが表示され、コードが機能する可能性があります。

于 2013-02-13T15:53:11.570 に答える
0

@Sam Robertsによって提供されたMatlabコードを変更し、ファイルの差分を添付しました。

1c1
< function [h,T,perm] = polardendrogram(Z,varargin)
---
> function [h,T,perm] = polardendrogram(Z, labels, varargin)
47,48c47,49
<     [x,y]=pol2cart((((i-minx)/xrange)*(pi*11/6))+(pi*1/12),1.1);
<     text(x,y,num2str(perm(i)));
---
>     [x,y]=pol2cart((((i-minx)/xrange)*(pi*11/6))+(pi*1/12),1.01);
>     THETA = (((i-minx)/xrange)*330 + 15); % pi/12 = 15° 
>     text(x,y,labels(perm(i)), 'rotation', THETA);

ご覧のとおり、これには、polardendrogram()の基になるMatlabの組み込みdendrogram()関数に通常渡す引数の前にラベルを指定する必要があります。

これを行うためのよりクリーンな方法がある可能性がありますが、これは私にとってはうまくいきます。

これについてコメントがあれば、私に知らせてください。

于 2014-08-06T09:05:18.837 に答える