matlab - 如何更改 MATLAB clustergram 的轴起始角
问题描述
我使用clustergram()
MATLAB 2016a 中的函数生成了下面的 clustergram。我展示的是一个相关矩阵,所以行标签和列标签是相同的,但是由于 MATLAB 开始轴的位置,块结构从右上角到左下角,而我希望它从左上角到右下角(这就是我们通常在矩阵中显示块)。我怎样才能做到这一点?我检查了 clustergram() 函数的参数,但看不到任何更改轴起始角的参数。
只要标签根据相关值进行聚类,我就可以不用树状图。
这是我生成clustergram的代码:
cgo = clustergram(corr(values));
我还使用以下方法添加行和列标签(图中未显示):
set(cgo, 'RowLabels', labels);
set(cgo, 'ColumnLabels', labels);
解决方案
这是我自己的解决方案。我将以下代码添加到问题中的代码中。这基本上从 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));
推荐阅读
- java - opensagres 中的波兰语编码并不好。该怎么办?
- php - 为什么 array_key_exists 方法在 laravel 中不起作用?
- kotlin - Jetpack compose - 尝试让声音在 viewmodel 中播放
- three.js - 查找子对象
- java - 如何使用 ARCore 和 OpenGL 在图片上播放视频 [增强图像]
- excel - 如果另一列中的值=特定,则VBA对特定列中的单元格值求和
- python - 汉明数的这个函数是如何工作的?
- node.js - Parcel 可以捆绑非本地托管的网站吗?
- iscsi - 如何通过iscsi挂载磁盘分区
- stripe-payments - 如何从 Sails 中的 Stripe API 访问原始数据?