【问题标题】:How to change MATLAB clustergram's axes start corners如何更改 MATLAB clustergram 的轴起始角
【发布时间】:2018-08-11 22:45:53
【问题描述】:

我在 MATLAB 2016a 中使用 clustergram() 函数生成了下面的 clustergram。我展示的是一个相关矩阵,因此行标签和列标签是相同的,但是由于 MATLAB 开始轴的位置,块结构从右上角到左下角,而我希望它从左上角到右下角(这就是我们通常在矩阵中显示块)。我怎样才能做到这一点?我检查了 clustergram() 函数的参数,但我看不到任何更改轴起始角的参数。

我可以不用树状图,只要标签根据相关值进行聚类。

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

cgo = clustergram(corr(values));

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

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

【问题讨论】:

    标签: matlab hierarchical-clustering dendrogram


    【解决方案1】:

    这是我自己的解决方案。我将以下代码添加到问题中的代码中。这基本上是从 clustergram 中获取排序,将其关闭,然后使用检索到的排序使用 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));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多