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 に答える