使用热图的热图和树形图的问题。环R

时间:2017-12-24 16:28:50

标签: r heatmap

我有兴趣使用树形图获得热图,使用10组之间的相似性百分比作为距离测量值。

数据结构如下:

af.w<-c(0,24.7,20.4,46.8,17.3,30,60.6,62.1,57.9,31.3)
af.g<-c(24.2,0,21.0,48.7,19.0,30.9,60.6,63.6,60.4,31.8)
af.e<-c(20.8,21.8,0,41.7,14.9,23.6,58.6,63.2,57.3,27.6)
af.h<-c(29.5,31.6,21.5,0,28.2,26.3,49.9,56.8,49.1,36.1)
af.s<-c(37.8,39.4,35.5,58.4,0,33.1,68.5,71.9,68.0, 47.7)
af.k<-c(61.8,61.8,56.8,69.3,51.3,0,75.6,78.9,74.8,64.0)
eu<-c(25.8,25.4,19.4,28.4,20.4,20,0,39.1,16.8,29.1)
asi<-c(18.5,21.3,18.5,29.0,20.0,18.6,28.8,0,24.0,22.0)
mi.ha<-c(27.4,31.6,23.9,32.7,25.8,23.1,23.9,40.5,0,30.9)
mi.aa<-c(20.6,19.7,15.1,44.1,18.7,23.6,56.3,58.6,54.2,0)
data<-cbind(af.w,af.g,af.e,af.h,af.s,af.k,eu,asi,mi.ha,mi.aa)
rownames(data)<-c("af.w","af.e","af.g","af.h","af.s","af.k","eu","asi","mi.ha","mi.aa")
data<-(100-data)

对角线两侧的成对比较的百分比不相等。这是因为比较具有不同大小的组的这些相似性百分比。基本原理如下:两个给定群体中存在一定数量的元素(A组N = 250,B组N = 500),它们共有80个元素。在这种情况下,A和B之间的相似性比例为32%,但B和A之间的相似性比例为16%。

使用package heatmaply和以下脚本我可以得到这个数字:

heatmaply(data.2, margins = c(40, 130),
      seriate = "OLO")

enter image description here

正如您所看到的,x轴上有两个互换的群体(af.g和af.e)。我相信这是因为使用这种配置构建上部树形图更加容易。但是我希望这个数字与对角线的正确对齐得到,如有必要,可以忽略上部的树状图。

1 个答案:

答案 0 :(得分:1)

这是一个可能的解决方案:

heatmaply(data, margins = c(40, 130), Colv="Rowv", seriate = "OLO")

enter image description here