gpt4 book ai didi

R:如何显示群集矩阵热图(将相似的颜色模式进行分组)

转载 作者:行者123 更新时间:2023-12-04 07:10:29 26 4
gpt4 key购买 nike

我在整个站点和软件包中搜索了很多有关热图的问题,但仍然有问题。

我有集群数据(kmeans/EM/DBscan ..),我想通过对同一集群进行分组来创建热图。我希望将相似的颜色模式归入热图,因此通常看起来像是块对角线。
我试图按簇号排序数据并显示它,

k = kmeans(data, 3)
d = data.frame(data)
d = data.frame(d, k$cluster)
d = d[order(d$k.cluster),]
heatmap(as.matrix(d))
,但它仍然没有排序,看起来像这样的链接:但是,我希望它按其簇号排序,看起来像这样:
我可以在R中执行此操作吗?
我搜索了很多软件包,并尝试了许多方法,但是仍然存在问题。
非常感谢。

最佳答案

您可以使用reshape2ggplot2做到这一点,如下所示:

library(reshape2)
library(ggplot2)

# Create dummy data
set.seed(123)
df <- data.frame(
a = sample(1:5, 1000, replace=TRUE),
b = sample(1:5, 1000, replace=TRUE),
c = sample(1:5, 1000, replace=TRUE)
)

# Perform clustering
k <- kmeans(df, 3)

# Append id and cluster
dfc <- cbind(df, id=seq(nrow(df)), cluster=k$cluster)

# Add idsort, the id number ordered by cluster
dfc$idsort <- dfc$id[order(dfc$cluster)]
dfc$idsort <- order(dfc$idsort)

# use reshape2::melt to create data.frame in long format
dfm <- melt(dfc, id.vars=c("id", "idsort"))

ggplot(dfm, aes(x=variable, y=idsort)) + geom_tile(aes(fill=value))

关于R:如何显示群集矩阵热图(将相似的颜色模式进行分组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5687891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com