我想用 kmeans 对矩阵进行聚类,并能够将其绘制为热图。听起来很琐碎,我也看过很多这样的情节。我试图用谷歌搜索,但找不到绕过它的方法。
我希望能够在此图上绘制面板 A 或 B 之类的东西。假设我有一个 250 行 5 列的矩阵。我不想对列进行聚类,只是对行进行聚类。
m = matrix(rnorm(25), 250, 5)
km = kmeans(m, 10)
那么如何将这 10 个集群绘制为热图?您的评论和帮助非常受欢迎。
谢谢。
我想用 kmeans 对矩阵进行聚类,并能够将其绘制为热图。听起来很琐碎,我也看过很多这样的情节。我试图用谷歌搜索,但找不到绕过它的方法。
我希望能够在此图上绘制面板 A 或 B 之类的东西。假设我有一个 250 行 5 列的矩阵。我不想对列进行聚类,只是对行进行聚类。
m = matrix(rnorm(25), 250, 5)
km = kmeans(m, 10)
那么如何将这 10 个集群绘制为热图?您的评论和帮助非常受欢迎。
谢谢。
像下面这样的东西应该可以工作:
set.seed(100)
m = matrix(rnorm(10), 100, 5)
km = kmeans(m, 10)
m2 <- cbind(m,km$cluster)
o <- order(m2[, 6])
m2 <- m2[o, ]
library(pheatmap) # I like esoteric packages!
library(RColorBrewer)
pheatmap(m2[,1:5], cluster_rows=F,cluster_cols=F, col=brewer.pal(10,"Set3"),border_color=NA)
我认为这两个数字都应该来自两个数字的组合。左边是热图,右边是根据聚类结果着色的。当然,数据应该根据集群的结果重新排序。顺便说一句,这个问题与问题下方评论的两个问题不相似。