R 如何将树状图分支链接到类?

R 如何将树状图分支链接到类?,r,cluster-analysis,hierarchical-clustering,dendrogram,dendextend,R,Cluster Analysis,Hierarchical Clustering,Dendrogram,Dendextend,我创建了一个分类,并将iris数据集分为三个类。之后,我想将类(颜色)链接到数据集中的观察值。我尝试使用一个cutree函数。因此,我得到了从1到3的类和从1到3的分支,但它们并不相同——第一个类是第三个分支,第二个类是第一个分支,第三个类是第二个分支。如何在绘图中正确链接输出类(基于剪树)和分支 > library('dendextend') > library('tidyverse') > iris <- datasets::iris > iris2 <-

我创建了一个分类,并将iris数据集分为三个类。之后,我想将类(颜色)链接到数据集中的观察值。我尝试使用一个
cutree
函数。因此,我得到了从1到3的类和从1到3的分支,但它们并不相同——第一个类是第三个分支,第二个类是第一个分支,第三个类是第二个分支。如何在绘图中正确链接输出类(基于
剪树
)和分支

> library('dendextend')
> library('tidyverse')
> iris <- datasets::iris
> iris2 <- iris[,-5]
> d_iris <- dist(iris2)
> hc_iris <- hclust(d_iris, method = "complete")
> dend <- as.dendrogram(hc_iris)
> dend <- color_branches(dend, h = 3.5)
> dend <- color_labels(dend, h = 3.5)
> plot(dend)
>库('dendextend')
>库('tidyverse')
>虹膜虹膜2 d_虹膜hc_虹膜dend dend dend图(dend)

>剪切数据\u帧(class=cuts,obj=as.numeric(name(cuts)))%>%
+分组依据(类别)%>%
+总结(n())
#一个tibble:3×2
类别'n()`
1     1    50
2     2    72
3     3    28
>绘图(切割(密度,h=3.5)$上部)

Dendestend包中的
cutree
有一个名为
order\u clusters\u as\u data
的参数,它是一个逻辑参数,允许您按照原始数据的顺序(TRUE)或树状图上标签的顺序(FALSE)对集群进行排序。默认值为TRUE,但由于cut函数根据树状图上的顺序对分支进行编号,因此您希望
顺序\u簇\u为\u data=FALSE

cuts <- cutree(dend, h=3.5, order_clusters_as_data=FALSE)
data_frame(class=cuts, obj=as.numeric(names(cuts))) %>% 
     group_by(class) %>%
     summarise(n())
# A tibble: 3 × 2
  class `n()`
  <int> <int>
1     1    72
2     2    28
3     3    50
plot(cut(dend, h=3.5)$upper)
cuts%
分组依据(类别)%>%
总结(n())
#一个tibble:3×2
类别'n()`
1     1    72
2     2    28
3     3    50
绘图(切割(密度,h=3.5)$上部)
cuts <- cutree(dend, h=3.5, order_clusters_as_data=FALSE)
data_frame(class=cuts, obj=as.numeric(names(cuts))) %>% 
     group_by(class) %>%
     summarise(n())
# A tibble: 3 × 2
  class `n()`
  <int> <int>
1     1    72
2     2    28
3     3    50
plot(cut(dend, h=3.5)$upper)