0

階層的なクラスタリングを実行し、ヒートマップを使用して古典的なデンドログラムをプロットしたいと考えています。これは、R で heatmap.2 または heatmap.3 を使用するとかなり簡単で、Python でもかなり簡単に見えます。ただし、私が実際に良い解決策を見つけていないのは、ツリーの注釈です。

理想的には、メタ データに従ってブランチを色分けしたいと考えています。クラスタリングの後、これらのタイプがどのようにグループ化されるかを視覚化したいと思います。データ量が多いため、各行にラベルを付けるのは現実的ではありません。

クラスター/距離に基づいてツリーを色付けすることは不可能ではないようですが、それは私が本当に望んでいることではありません。

色の分類ベクトルは、別の列または行名の一部である可能性があります

R och Python でのソリューションは、実際には重要ではありません。ありがとう!

編集:

例:

library(gplots)
library(proxy)
df = data.frame(matrix(rnorm(100), nrow=10))
rownames(df) <- c("A_1","A_2","A_3","B_1","B_2","B_3","C_1","C_2","C_3","C_4")
df <- t(df)
distance.matrix.df <- dist(as.matrix(df), method='pearson')
clust.df1 <- hclust(distance.matrix.df, method = "average")
dend.dfc <- as.dendrogram(clust.df1)
heatmap.2(as.matrix(df), Rowv=dend.dfc, keysize=1, dendrogram="col", trace="none")

出力:ここ

望ましい出力:ここ

4

1 に答える 1

1

R では、次のように試すことができます。

library(dendextend)
dend <- df %>% t %>% dist %>% hclust %>% as.dendrogram %>% 
  branches_attr_by_clusters(as.numeric(as.factor(substr(labels(.), 0, 1))), 
                            attr="col")
heatmap.2(as.matrix(df), Rowv=dend.dfc, Colv=dend, keysize=1, 
          dendrogram="col", trace="none")

次のようなものが得られます。

ここに画像の説明を入力

于 2015-10-31T13:03:23.723 に答える