首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dendextend colour_branches时不显示groupLabels

使用dendextend colour_branches时不显示groupLabels
EN

Stack Overflow用户
提问于 2021-03-30 16:41:07
回答 1查看 28关注 0票数 0

我想要实现的工作流程是:

代码语言:javascript
复制
dm <- dist(data)
dend <- hclust(dm)
k <- stats::cutree(dend, k = 10)
data$clusters <- k
plot(hclust, colorBranchees = k) #???? What I can use here.

因此,我使用cutree输出搜索彩色树状图分支。我找到的只有dendextend

问题是我没能用dendextend实现工作流。

这就是我想出来的,但我现在想要显示clusterLabels

代码语言:javascript
复制
library(dendextend)
hc <- hclust(dist(USArrests))
dend <- as.dendrogram(hc)

kcl <- dendextend::cutree(dend, k = 4)
dend1 <- color_branches(dend, clusters = kcl[order.dendrogram(dend)], groupLabels = TRUE)%>% set("labels_cex", 1)
plot(dend1, main = "Dendrogram dist JK")

此外,尝试像groupLabels = 1:4这样的东西也不会有帮助。

使用参数k (o集群的数量)指定groupLable可以工作。但不幸的是,标签与dendextend自己的cutree方法生成的标签不同。

注意,这里的集群4有2个成员。

代码语言:javascript
复制
> table(kcl)
kcl
 1  2  3  4 
14 14 20  2

这篇文章建议使用dendextend::cutree(dend,k = nrCluster, order_clusters_as_data = FALSE) r dendrogram - groupLabels not match real labels (package dendextend)

但是,我不能使用dendextend::cutree的输出对数据进行分组(因为排序不匹配。

我很乐意在R中使用不同的树状图绘图库,但是到目前为止,我在Web上搜索的"coloring dendrogram by cutree output“指向了dendextend包。

EN

回答 1

Stack Overflow用户

发布于 2021-05-15 19:40:15

对不起,我不太明白你的问题。

您似乎希望在curtree的输出和原始数据之间保持一致。如果是这样,那么你需要使用dendextend::cutree(dend,k = nrCluster, order_clusters_as_data = TRUE),例如:

代码语言:javascript
复制
require(dendextend)
d1 <- USArrests[1:10,]
hc <- hclust(dist(d1))
dend <- as.dendrogram(hc)
k <- dendextend::cutree(dend, k = 3, order_clusters_as_data = TRUE)
d2 <- cbind(d1, k)
plot(color_branches(dend, 3))
d2
# an easier way to see the clusters is by ordering the rows of the data based on the order of the dendrogram
d2[order.dendrogram(dend),]

情节很好:

并且聚类被正确地映射到数据(参见输出)

代码语言:javascript
复制
> require(dendextend)
> d1 <- USArrests[1:10,]
> hc <- hclust(dist(d1))
> dend <- as.dendrogram(hc)
> k <- dendextend::cutree(dend, k = 3, order_clusters_as_data = TRUE)
> d2 <- cbind(d1, k)
> plot(color_branches(dend, 3))
> d2
            Murder Assault UrbanPop Rape k
Alabama       13.2     236       58 21.2 1
Alaska        10.0     263       48 44.5 1
Arizona        8.1     294       80 31.0 2
Arkansas       8.8     190       50 19.5 1
California     9.0     276       91 40.6 2
Colorado       7.9     204       78 38.7 1
Connecticut    3.3     110       77 11.1 3
Delaware       5.9     238       72 15.8 1
Florida       15.4     335       80 31.9 2
Georgia       17.4     211       60 25.8 1
> # an easier way to see the clusters is by ordering the rows of the data based on the order of the dendrogram
> d2[order.dendrogram(dend),]
            Murder Assault UrbanPop Rape k
Connecticut    3.3     110       77 11.1 3
Florida       15.4     335       80 31.9 2
Arizona        8.1     294       80 31.0 2
California     9.0     276       91 40.6 2
Arkansas       8.8     190       50 19.5 1
Colorado       7.9     204       78 38.7 1
Georgia       17.4     211       60 25.8 1
Alaska        10.0     263       48 44.5 1
Alabama       13.2     236       58 21.2 1
Delaware       5.9     238       72 15.8 1

如果这回答了你的问题,或者如果你在这里有后续问题,请LMK。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66867484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档