如何更改MATLAB Clustergram的轴起始角

时间:2018-08-11 22:45:54

标签: matlab hierarchical-clustering dendrogram

我在MATLAB 2016a中使用clustergram()函数在聚类图下方生成。我显示的是一个相关矩阵,所以行和列的标签相同,但是由于MATLAB从轴开始的位置,所以块结构从右上到左下,而我希望它从左上到右下(这就是方法)我们通常以矩阵形式显示块)。我该如何实现?我检查了clustergram()函数的参数,但看不到任何可更改轴起始角的参数。

只要树状图根据相关值聚类,我就没有树状图。

这是我生成集群图的代码:

cgo = clustergram(corr(values));

我还使用以下方法添加行标签和列标签(未在图片中显示):

set(cgo, 'RowLabels', labels);
set(cgo, 'ColumnLabels', labels);

enter image description here

1 个答案:

答案 0 :(得分:0)

这是我自己的解决方案。我在问题代码中添加了以下代码。这基本上是从集群图中获取顺序,将其关闭,然后使用检索到的顺序通过imagesc()创建一个热图,因为imagesc()按照我想要的方式创建矩阵,如下所示:

ordering = get(cgo, 'RowLabels');
[~, ind] = ismember(get(cgo, 'RowLabels'), labels);
close all hidden
colormap jet
imagesc(c(ind, ind))
set(gca, 'Ticklength', [0 0])
set(gca, 'YTick', 1:length(ind), 'YTickLabel', labels(ind));

enter image description here