在matlab中对簇图上的树形图进行重新排序

时间:2012-12-18 05:25:03

标签: matlab fonts heatmap dendrogram

我已根据标准化值的数据集生成了一个簇图,但我想尝试沿y轴重新排序样本。在google搜索之后,我还没有找到关于如何去做的很多信息。下面是我的代码到目前为止:任何帮助将不胜感激。

    [num, txt]= xlsread('S:\Breast\Breast Stats no post XRT.xls', 'Breast heat');
    PID= txt(2:93,1);
    varname = txt(1,2:23);
    cgram = clustergram(num(1:92,:));
    set(cgram,'Standardize',3,'Cluster',3, 'RowLabels',PID(:,:), 'ColumnLabels',                                       varname(:,:),...
    'Linkage','ward','Dendrogram',3,'ColumnPdist', 'euclidean', 'RowPdist', 'euclidean', 'OptimalLeafOrder', 'true',...
 'SymmetricRange', 'false');

另外,有没有人知道如何为一个特定的轴设置标签的字体大小?

2 个答案:

答案 0 :(得分:0)

关于主要问题:

假设您将nx2中的数据放入矩阵A,那么您可以根据以下列对其进行排序:

[Y,I]=sort(A(:,2)); % Sort by column 2 of the matrix
B=A(I,:); %use the indices from sort() to sort all rows of A.

答案 1 :(得分:0)

要重新排序clustergram中的元素,可以设置clustergram的OptimalLeafOrder属性。

要设置标签的字体大小,可以使用addXLabeladdYLabel命令,然后直接设置返回的文本对象的FontSize属性。

有关详细信息和示例,请参阅doc clustergramdoc addXLabel