0

我想根据几个标准(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

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

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

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

4

1 回答 1

0

尝试使用该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)

在此处输入图像描述

于 2021-11-11T09:06:58.407 回答