以径向格式显示集群

display clusters in radial format

我有一个集群列表,可以说是从集群 1 到集群 3;随着 他们的成员资格如下。我想以径向格式显示集群。我正在考虑使用 as.phylo 函数 在 ape 包中显示它,但这需要创建一个 hclust object.If 任何人都知道如何做到这一点,非常感谢创建一个 hclust 对象或其他方式。

非常感谢!

cl var numberOfCluster
 1  a    1
 1  b    1
 1  c    1
 1  d    1
 1  a    2
 1  b    2
 2  c    2
 2  d    2
 3  a    3
 1  b    3
 2  c    3
 2  d    3

非常感谢!

(这是我对 a similar question from "crossvalidated" 的回答的副本)

假设您可以创建 hclust(从可以定义距离度量的变量)- 然后可以通过组合两个新包来完成:circlize 和 dendextend。

可以使用 circlize_dendrogram 函数制作绘图(允许对 plot.phylo 函数的 "fan" 布局进行更精确的控制)。

# install.packages("dendextend")
# install.packages("circlize")
library(dendextend)
library(circlize)

# create a dendrogram
hc <- hclust(dist(datasets::mtcars))
dend <- as.dendrogram(hc)

# modify the dendrogram to have some colors in the branches and labels
dend <- dend %>% 
   color_branches(k=4) %>% 
   color_labels

# plot the radial plot
par(mar = rep(0,4))
# circlize_dendrogram(dend, dend_track_height = 0.8) 
circlize_dendrogram(dend, labels_track_height = NA, dend_track_height = .4)