gpt4 book ai didi

r - 如何在分层热图树状图中添加聚类矩形

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

以下代码创建 1. 树状图和 2. 带有树状图的热图

mydata <- mtcars
hclustfunc <- function(x) hclust(x, method="complete")
distfunc <- function(x) dist(x,method="euclidean")
d <- distfunc(mydata)
fit <- hclustfunc(d)

#plot dendogram only
plot(fit)
groups <- cutree(fit, k=5)

# Add rectangle in cluster
rect.hclust(fit, k=5, border="red")

生成这个图:
enter image description here

现在我想用树状图创建一个热图
# plot heat map with dendogram together.
library("gplots")
heatmap.2(as.matrix(mydata),dendrogram="row",trace="none", margin=c(8,9), hclust=hclustfunc,distfun=distfunc);

目前它看起来像这样:
enter image description here

在最终的热图中,有没有一种方法可以像第一个图一样为每个集群添加红色矩形(即添加到左侧的树状图中)?

最佳答案

我可以建议一个替代方案,使用 RowSideColors heatmap.2 中的参数功能:

heatmap.2(as.matrix(mydata),dendrogram="row",trace="none", margin=c(8,9), 
hclust=hclustfunc, distfun=distfunc, RowSideColors=as.character(groups))

如果您想重新分配颜色:
# require(RColorBrewer)
cols <- brewer.pal(max(groups), "Set1")
heatmap.2(as.matrix(mydata),dendrogram="row",trace="none", margin=c(8,9),
hclust=hclustfunc, distfun=distfunc, RowSideColors=cols[groups])

第一个示例如下所示:

enter image description here

关于r - 如何在分层热图树状图中添加聚类矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20347000/

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