R-heatmap 2:对行和列重新排序 [英] R - heatmap.2: reorder rows and columns

查看:0
本文介绍了R-heatmap 2:对行和列重新排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用gplots包的heatmap.2生成了一个热图:

library(gplots)
abc <-read.csv(file="abc.txt", header=T, sep="	", dec=".")
abcm<-as.matrix(abc)
def <-read.csv(file="def.txt", header=T, sep="	", dec=".")
defm<-as.matrix(def)
mean <-read.csv(file="mean.txt", header=T, sep="	", dec=".")
meanm<-as.matrix(mean)
distance.row = dist(as.matrix(def), method = "euclidean")
cluster.row = hclust(distance.row, method = "average")
distance.col = dist(t(as.matrix(abc)), method = "euclidean")
cluster.col = hclust(distance.col, method = "average")
my_palette <- colorRampPalette(c("red", "yellow", "green"))(n = 299)

heatmap.2(meanm, trace="none", dendrogram="both", Rowv=as.dendrogram(cluster.row), Colv=as.dendrogram(cluster.col), margins = c(7,7), col=my_palette)

为每个树状图使用两种不同的聚类方法。

现在我想对对象重新排序,这样绿色正方形就形成了一条对角线。我该怎么做?

编辑:此处输入我的样本

structure(c(1, 0.6798, 0.6604, 0.7101, 0.6771, 0.6725, 0.6696, 
0.6548, 0.676, 0.6811, 0.6798, 1, 0.656, 0.6763, 0.8163, 0.781, 
0.7811, 0.6503, 0.7811, 0.855, 0.6604, 0.656, 1, 0.6532, 0.6498, 
0.6459, 0.6455, 0.7532, 0.6521, 0.6536, 0.7101, 0.6763, 0.6532, 
1, 0.672, 0.669, 0.6669, 0.6517, 0.6748, 0.6786, 0.6771, 0.8163, 
0.6498, 0.672, 1, 0.7828, 0.7838, 0.6441, 0.7736, 0.8227, 0.6725, 
0.781, 0.6459, 0.669, 0.7828, 1, 0.8361, 0.6447, 0.7574, 0.7796, 
0.6696, 0.7811, 0.6455, 0.6669, 0.7838, 0.8361, 1, 0.638, 0.7566, 
0.7772, 0.6548, 0.6503, 0.7532, 0.6517, 0.6441, 0.6447, 0.638, 
1, 0.6563, 0.6459, 0.676, 0.7811, 0.6521, 0.6748, 0.7736, 0.7574, 
0.7566, 0.6563, 1, 0.7778, 0.6811, 0.855, 0.6536, 0.6786, 0.8227, 
0.7796, 0.7772, 0.6459, 0.7778, 1), .Dim = c(10L, 10L), .Dimnames = list(
    c("sp1", "sp2", "sp3", "sp4", "sp5", "sp6", "sp7", "sp8", 
    "sp9", "sp10"), c("sp1", "sp2", "sp3", "sp4", "sp5", "sp6", 
    "sp7", "sp8", "sp9", "sp10")))

推荐答案

函数reorder.dendrogram翻转分支。

reorder(as.dendrogram(cluster.col), 10:1)
reorder(as.dendrogram(cluster.row), 10:1)

用于

heatmap.2(meanm, trace="none", dendrogram="both",
Rowv=reorder(as.dendrogram(cluster.row), 10:1),
Colv=reorder(as.dendrogram(cluster.col), 10:1),
margins = c(7,7), breaks=breaks,col=hm.colors, na.color="white",
main="mean(AAI+ANI)", xlab="AAI clustering", ylab="ANI clustering", srtCol=45)

这篇关于R-heatmap 2:对行和列重新排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆