3

使用现有列着色树状图分支的问题,我可以为树状图叶子附近的分支着色。编码:

x<-1:100
dim(x)<-c(10,10)
set.seed(1)
groups<-c("red","red", "red", "red", "blue", "blue", "blue","blue", "red", "blue")
x.clust<-as.dendrogram(hclust(dist(x)))

x.clust.dend <- x.clust
labels_colors(x.clust.dend) <- groups
x.clust.dend <- assign_values_to_leaves_edgePar(x.clust.dend, value = groups, edgePar = "col") # add the colors.
x.clust.dend <- assign_values_to_leaves_edgePar(x.clust.dend, value = 3, edgePar = "lwd") # make the lines thick
plot(x.clust.dend) 

生成一个树状图,如下所示:在此处输入图像描述 但是,我想将分支向上着色,直到当前分支中的所有叶子都具有相同的标签。即使有单个不匹配切换到默认颜色黑色。我希望生成的树状图看起来像在此处输入图像描述

我想要的与使用color_brancheslike没什么不同

x.clust.dend <-color_branches(x.clust.dend,k=3)

因为它基于自己的集群而不是基于某些外部标签来着色。

4

1 回答 1

1

您正在寻找的功能是branches_attr_by_clusters. 以下是如何使用它:

library(dendextend)

x <- 1:100
dim(x) <- c(10, 10)
set.seed(1)
groups <- c("red","red", "red", "red", "blue", "blue", "blue","blue", "red", "blue")
dend <- as.dendrogram(hclust(dist(x)))

clusters <- as.numeric(factor(groups, levels = c("red", "blue")))
dend2 <-
  branches_attr_by_clusters(dend , clusters, values = groups)
plot(dend2)

在此处输入图像描述

这个函数最初是为了显示 dynamicTreeCut 的结果而创建的。有关另一个示例,请参见小插图

于 2016-04-14T12:02:30.637 回答