如何用 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)
我想创建一个相对较大的数据集 (>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)