如何用 dendextend 标记层次聚类树中的一个观察值?

How to label just one observation in hierarchical clustering tree with dendextend?

我想创建一个相对较大的数据集 (>3000 obs) 的层次聚类树。不幸的是,通过在终端节点处包含如此多的标签,树看起来非常混乱并且包含许多不必要的信息。因此,为了减少混乱,我只想标记一个感兴趣的观察结果。我已经删除了所有标签,但我不知道如何检索和添加我感兴趣的标签。

对于这个 MWE,假设我想将字母 k 添加到我的树状图中。

library(dendextend)
library(cluster)
library(tidyverse)
set.seed(1)
a <- rnorm(20)
b <- rnorm(20)
c <- rnorm(20)

df <- as.data.frame(a, b, c)
names(df) <- letters[length(df)]

my_dist <- dist(df)
my_clust <- hclust(my_dist)
my_dend <- as.dendrogram(my_clust)
plot(color_branches(my_dend, k = 3), leaflab = "none", horiz = T)

可以指定标签set函数。如果你只想显示一个,让其他的为空字符串。

LAB = rep("", nobs(my_dend))
LAB[15] = "N15"
my_dend = set(my_dend, "labels", LAB) 
plot(color_branches(my_dend, k = 3), horiz = T)