【问题标题】:R draw kmeans clustering with heatmapR用热图绘制kmeans聚类
【发布时间】:2011-07-02 07:53:21
【问题描述】:

我想用 kmeans 对矩阵进行聚类,并能够将其绘制为热图。听起来很琐碎,我也看过很多这样的情节。我试图用谷歌搜索,但找不到绕过它的方法。

我希望能够在此图上绘制面板 A 或 B 之类的东西。 假设我有一个 250 行 5 列的矩阵。我不想对列进行聚类,只是对行进行聚类。

m = matrix(rnorm(25), 250, 5)

km = kmeans(m, 10)

那么我如何将这 10 个集群绘制为热图?您的 cmets 和帮助是非常受欢迎的。

谢谢。

【问题讨论】:

标签: r visualization cluster-analysis k-means heatmap


【解决方案1】:

类似下面的东西应该可以工作:

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)

【讨论】:

  • 感谢 Paolo 的回复。但是我有点困惑,为什么我们失去了情节中的 5 列?
  • 我们不是!试试:pheatmap(m2[,1:5], cluster_rows=F,cluster_cols=F, col=brewer.pal(10,"Set3"))
【解决方案2】:

我认为这两个数字都应该来自两个数字的组合。左边是热图,右边是根据聚类结果着色的。当然,数据应该根据集群的结果重新排序。顺便说一句,这个问题与问题下方评论的两个问题不相似。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-08
    • 2016-06-02
    • 2014-12-01
    • 2013-11-25
    • 2020-02-04
    • 2021-06-07
    • 1970-01-01
    • 2019-11-20
    相关资源
    最近更新 更多