1

我已经聚集了一些数据r并将结果绘制为树状图。我现在想知道的是如何更改标签的颜色,以便相同的标签具有相同的颜色。

我使用以下代码得到了我的树状图:

> d<-stringdist::stringdistmatrix(AR_GenesforR$AR_Genes)
> cl <-hclust(as.dist(d))
> plot(cl, label=AR_GenesforR$AR_Genes)
> groups <- cutree(cl, k=2)
> rect.hclust(cl, k=2, border="red")

生成的树状图如下所示: 在此处输入图像描述

我现在想做的是用相同的颜色为所有相同的标签着色,例如。全部2010为黄色,全部2011为蓝色,依此类推。我已经研究了很多,但大多只找到了根据它们所在的集群为标签着色的方法。有人知道我怎么能做我想做的事吗?

4

1 回答 1

1

这是一个基于dendextend R 包的功能,可以满足您的要求(这是关于包的简短2 页纸)。

x <- c(2011,2011,2012,2012,2015,2015,2015)
names(x) <- x
dend <- as.dendrogram(hclust(dist(x)))

color_unique_labels <- function(dend, ...) {
    if(!require(dendextend)) install.packages("dendextend")
    if(!require(colorspace)) install.packages("colorspace")
    library("dendextend")

    n_unique_labels <- length(unique(labels(dend)))
    colors <- colorspace::rainbow_hcl(n_unique_labels)
    labels_number <- as.numeric(factor(labels(dend)))
    labels_colors(dend) <- colors[labels_number]
    dend
}


par(mfrow = c(1,2))
plot(dend)
dend2 <- color_unique_labels(dend)
plot(dend2)

在此处输入图像描述

于 2015-11-07T08:29:09.757 回答