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

 帅气zxc_925 发布于 2023-02-13 11:49

以下代码创建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")

这产生了这个情节: 在此输入图像描述

现在我想创建一个带有树状图的热图

# 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);

目前它看起来像这样: 在此输入图像描述

在最终的热图中有一种方法可以为每个簇添加红色矩形(即在左边的树形图上),就像第一个图一样?

1 个回答
  • 我可以通过RowSideColorsheatmap.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])
    

    第一个例子如下所示:

    在此输入图像描述

    2023-02-13 11:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有