我想用kmeans聚类一个矩阵,并能够将其绘制为热图。这听起来很微不足道,我见过很多这样的情节。我试着用谷歌搜索一下,但找不到绕过它的方法。
我希望能够在这张图上画出像A或B这样的面板。假设我有一个250行5列的矩阵。我不想聚集列,只聚集行。
m = matrix(rnorm(25), 250, 5)
km = kmeans(m, 10)那么我如何将这10个集群绘制为热图呢?你的评论和帮助是非常受欢迎的。
谢谢。

发布于 2011-02-23 19:15:03
下面这样的代码应该是有效的:
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)

发布于 2014-09-20 05:30:52
我认为这两个数字应该是两个数字的总和。左边是热图,右边是根据聚类结果着色的。当然,应该根据聚类结果对数据进行重新排序。顺便说一句,这个问题与问题下面评论的两个问题并不相似。
https://stackoverflow.com/questions/5084077
复制相似问题