一步一步学heatmap2函数.docx
- 文档编号:13373947
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:10
- 大小:248KB
一步一步学heatmap2函数.docx
《一步一步学heatmap2函数.docx》由会员分享,可在线阅读,更多相关《一步一步学heatmap2函数.docx(10页珍藏版)》请在冰点文库上搜索。
一步一步学heatmap2函数
一步一步学heatmap.2函数
数据如下:
library(gplots)
data(mtcars)
x<-as.matrix(mtcars)
rc<-rainbow(nrow(x),start=0,end=.3)
cc<-rainbow(ncol(x),start=0,end=.3)
X就是一个矩阵,里面是我们需要画热图的数据。
Rc是一个调色板,有32个颜色,渐进的
Cc也是一个调色板,有11个颜色,也是渐进的
首先画一个默认的图:
heatmap.2(x)
然后可以把聚类数可以去掉:
就是控制这个dendrogram参数
heatmap.2(x,dendrogram="none")
然后我们控制一下聚类树
heatmap.2(x,dendrogram="row")只显示行向量的聚类情况
heatmap.2(x,dendrogram="col")只显示列向量的聚类情况
下面还是在调控聚类树,但是我没看懂跟上面的参数有啥子区别!
heatmap.2(x,keysize=2)##default-dendrogramplottedandreorderingdone.
heatmap.2(x,Rowv=FALSE,dendrogram="both")##generatewarning!
heatmap.2(x,Rowv=NULL,dendrogram="both")##generatewarning!
heatmap.2(x,Colv=FALSE,dendrogram="both")##generatewarning!
接下来我们可以调控行列向量的label的字体大小方向
首先我们调控列向量,也就是x轴的label
heatmap.2(x,srtCol=NULL)
heatmap.2(x,srtCol=0,adjCol=c(0.5,1))
heatmap.2(x,srtCol=45,adjCol=c(1,1))
heatmap.2(x,srtCol=135,adjCol=c(1,0))
heatmap.2(x,srtCol=180,adjCol=c(0.5,0))
heatmap.2(x,srtCol=225,adjCol=c(0,0))##notveryuseful
heatmap.2(x,srtCol=270,adjCol=c(0,0.5))
heatmap.2(x,srtCol=315,adjCol=c(0,1))
heatmap.2(x,srtCol=360,adjCol=c(0.5,1))
然后我们调控一下行向量,也就是y轴的label
heatmap.2(x,srtRow=45,adjRow=c(0,1))
heatmap.2(x,srtRow=45,adjRow=c(0,1),srtCol=45,adjCol=c(1,1))
heatmap.2(x,srtRow=45,adjRow=c(0,1),srtCol=270,adjCol=c(0,0.5))
设置offsetRow/offsetCol可以把label跟热图隔开!
##ShoweffectofoffsetRow/offsetCol(onlyworkswhensrtRow/srtColis
##notalsopresent)
heatmap.2(x,offsetRow=0,offsetCol=0)
heatmap.2(x,offsetRow=1,offsetCol=1)
heatmap.2(x,offsetRow=2,offsetCol=2)
heatmap.2(x,offsetRow=-1,offsetCol=-1)
heatmap.2(x,srtRow=0,srtCol=90,offsetRow=0,offsetCol=0)
heatmap.2(x,srtRow=0,srtCol=90,offsetRow=1,offsetCol=1)
heatmap.2(x,srtRow=0,srtCol=90,offsetRow=2,offsetCol=2)
heatmap.2(x,srtRow=0,srtCol=90,offsetRow=-1,offsetCol=-1)
##Showeffectofz-scorescalingwithincolumns,blue-redcolorscale
##
hv<-heatmap.2(x,col=bluered,scale="column",tracecol="#303030")
hv是一个热图对象!
!
!
>names(hv)可以看到hv对象里面有很多子对象
"rowInd""colInd""call""colMeans""colSDs""carpet""rowDendrogram""colDendrogram""breaks""col""vline""colorTable"
##Showthemappingofz-scorevaluestocolorbins
hv$colorTable
##Extracttherangeassociatedwithwhite
我们得到了热图的颜色的数值映射矩阵,接下来就可以进行一系列的操作~!
!
!
hv$colorTable[hv$colorTable[,"color"]=="#FFFFFF",]
首先得到了白色所对应的数值区间!
然后还可以通过一下命令,直接求出属于白色区间的那些数值。
whiteBin<-unlist(hv$colorTable[hv$colorTable[,"color"]=="#FFFFFF",1:
2])
rbind(whiteBin[1]*hv$colSDs+hv$colMeans,
whiteBin[2]*hv$colSDs+hv$colMeans)
调整scale参数选择按照列还是行来进行数据的标准化
heatmap.2(x,col=bluered,scale="column",tracecol="#303030")
heatmap.2(x,col=bluered,scale="row",tracecol="#303030")
如果选择了标准化,那么还可以手工调整标准化的参数:
rowMeans,rowSDs
meanandstandarddeviationofeachrow:
onlypresentifscale="row"
colMeans,colSDs
meanandstandarddeviationofeachcolumn:
onlypresentifscale="column"
通过hclustfun参数来调整聚类方法
参考:
Cluster_Method<-c("ward","single","complete","average","mcquitty","median","centroid")
#R语言里面自带的hclust函数共有7种聚类方法
for(iin1:
length(Cluster_Method)){
#makeafunctiontoextracttheclustermethod
myclust<-function(x){
hclust(x,method=Cluster_Method[i])
}
#makeheatmapbyjpeg
jpeg(filename=paste(Cluster_Method[i],'.jpg'),width=1024,height=728)
heatmap.2(as.matrix(Data_Top1k_Var),
trace='none',
hclustfun=myclust,
labRow=NA,
ColSideColors=c('black',grey(0.4),'lightgrey')[as.factor(CellLine_Anno$Type)],
xlab='CellLines',
ylab='Probes',
main=Cluster_Method[i],
col=greenred(64))
dev.off()
}
这样就可以一下子把七种cluster的方法依次用到heatmap上面来。
而且通过对cluster树的比较,我们可以从中挑选出最好、最稳定到cluster方法,为后续分析打好基础!
对下面这个数据聚类:
require(graphics)
hc<-hclust(dist(USArrests),"ave")
plot(hc)
首先对一个数据框用dist函数处理得到一个dist对象!
Dist对象比较特殊,专门为hclust函数来画聚类树的!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一步一步 heatmap2 函数