Matlab 用树状图可视化层次聚类中的最低节点

Matlab 用树状图可视化层次聚类中的最低节点,matlab,dendrogram,Matlab,Dendrogram,我正在使用它为大约5000个实例的数据集生成一个聚集层次聚类。我想可视化层次结构中的“底部”合并,也就是说,靠近叶子的节点具有最小的距离度量 不幸的是,可视化更倾向于显示算法中最后一次合并的“顶部”节点。默认情况下,它显示前30个节点,折叠树的底部。我可以更改P值以显示更多节点,但我必须显示所有5000+节点才能看到聚类的最低级别,此时绘图不再可读 MCVE 例如,从 生成顶部30个节点可见的树状图。带有数字标签的节点正在折叠树的较低级别 我可以增加可见节点的数量,以牺牲可读性来包含所有叶子

我正在使用它为大约5000个实例的数据集生成一个聚集层次聚类。我想可视化层次结构中的“底部”合并,也就是说,靠近叶子的节点具有最小的距离度量

不幸的是,可视化更倾向于显示算法中最后一次合并的“顶部”节点。默认情况下,它显示前30个节点,折叠树的底部。我可以更改
P
值以显示更多节点,但我必须显示所有5000+节点才能看到聚类的最低级别,此时绘图不再可读

MCVE 例如,从

生成顶部30个节点可见的树状图。带有数字标签的节点正在折叠树的较低级别

我可以增加可见节点的数量,以牺牲可读性来包含所有叶子

dendrogram(Z, size(Z,1), 'Orient', 'Left', 'Labels', species);

我想要什么 我真正想要的是上面的放大版本,如下面的示例,但显示前30个最近的集群

我试过的 我尝试为函数提供前30行
Z

dendrogram(Z(1:30), 'Orient', 'Left');
但当其中一行引用了一个大于30行的集群时,就会抛出一个“索引超过矩阵维度”错误

我还尝试使用树状图
Reorder
属性,但我很难找到从最近到最远排列集群的有效顺序

%The Z matrix is in order from closest cluster to furthest, 
% so I can use it to create an ordering
Y = reshape(Z(:, 1:2)', 1, [])
Y = Y(Y<151);
dendrogram(Z, 30, 'Orient', 'Left', 'Labels', species, 'Reorder', Y);
%Z矩阵的顺序是从最近的簇到最远的簇,
%所以我可以用它来创建一个订单
Y=重塑(Z(:,1:2)’,1,[])
Y=Y(Y
%The Z matrix is in order from closest cluster to furthest, 
% so I can use it to create an ordering
Y = reshape(Z(:, 1:2)', 1, [])
Y = Y(Y<151);
dendrogram(Z, 30, 'Orient', 'Left', 'Labels', species, 'Reorder', Y);