R中树状图非叶节点中的标签

Labels in non-leaf nodes of dendrogram in R

我想根据几个标准(Column1、Column2、Column3)在 R 中以树状图的形式创建一个包含几个项目(Name1、Name2、Name3、...)的分类的图表(我喜欢为此目的树状图的正交美学)。

我有以下 CSV (data.csv),其中包含每个标准中的项目及其分类:

Name;Column1;Column2;Column3
Name1;A;C;D
Name2;B;C;D
Name3;A;C;E
Name4;B;C;E
Name5;B;C;D
Name6;A;C;D
Name7;A;D;E
Name8;A;D;E
Name9;B;D;E
Name10;A;D;E

以及以下 R 代码:

library(data.tree)
library(DiagrammeR)
library(ggdendro)

data <- read.table(file = "data.csv", header = TRUE, sep = ";")

data$pathString <- paste("stat",
                         data$Column1,
                         data$Column2,
                         data$Column3,
                         data$Name,
                         sep = "/")

pop <- as.Node(data)
den <- as.dendrogram(pop)

p1 <- ggdendrogram(den, labels = TRUE, rotate = TRUE, leaf_labels = TRUE)
p1

目前,我正在获取以下非叶节点中没有标签的图像:

我想知道是否可以在树状图中的每个非叶节点中显示标签。例如,在 Column1 的决策中在每条边(与非叶节点相关)上显示“A”和“B”,在 Column2 的决策中在每条边上显示“C”和“D”,等等。此外,可以将项目的名称放在图形的右侧吗?提前致谢。

尝试使用 ape 包。

# try loading a package, install if unavailable
for(i in c("ape")){
  if(!require(i, character.only = TRUE)){
    install.packages(i, dependencies = TRUE)
    library(i, character.only = TRUE)
  }
}

# convert "Node" object to class "phylo"
den2 <- as.phylo(pop)

# plot.phylo options allow flexibility in display
plot(den2, show.node.label = TRUE, label.offset = 1)