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 Dendrogram 函数: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 回答