hclust() を使用して、R の 20,000 行 x 169 列のデータ セットに基づいて距離行列をクラスタリングしています。クラスターオブジェクトを樹状図に変換して樹状図全体をプロットすると、かなり大きなpdfに出力しても、あまりにも大きくて読みづらいです。
df <- as.data.frame(matrix(abs(rnorm(3380000)), nrow = 20000))
mydist <- vegdist(df)
my.hc <- hclust(mydist, method = "average")
hcd <- as.dendrogram(my.hc)
pdf("hclust_plot.pdf", width = 40, height = 15)
plot(hcd)
dev.off()
樹状図を切り捨てるクラスターの数 (k) を指定し、樹状図の上部のみを k 個の分割点の上にプロットしたいと思います。関数 cut() を使用して高さ (h) を指定することに基づいて上部をプロットできることはわかっています。
pdf("hclust_plot2.pdf", width = 40, height = 15)
plot(cut(hcd, h = 0.99)$upper)
dev.off()
また、dendextend パッケージを使用して、樹形図プロットを k グループで色付けできることも知っています。
library(dendextend)
pdf("hclust_plot3.pdf", width = 40, height = 15)
plot(color_branches(hcd, k = 44))
dev.off()
しかし、私のデータセットでは、このデンドログラムは密度が高すぎて、どのグループがどの色であるかを読み取ることさえできません。h ではなく k を指定して、カット ポイントの上のデンドログラムの上部のみをプロットする方法はありますか? または、k を指定して、デンドログラムの h 値を取得する方法はありますか?