以径向格式显示簇

时间:2015-09-17 14:47:29

标签: r dendrogram hclust dendextend

我有一个群集列表,可以说从群集1到群集3;随着 他们的会员资格如下。我想以径向格式显示簇。我在考虑使用as.phylo函数 在ape包中显示这个,但这需要创建一个hclust对象。如果有人知道如何做到这一点,非常感谢创建一个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

非常感谢!

1 个答案:

答案 0 :(得分:2)

(这是我对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) 

enter image description here