2015-02-24 109 views
0

我试图在R中显示彼此相邻的热图,但是失败。 什么我做的是:如何在R中的一个窗口中绘制多个热图R

library(gplots) 
xPos11<-read.table("dataset1.txt") 
xPos2<-read.table("dataset2.txt") 
xPos3<-read.table("dataset3.txt") 
xPos4<-read.table("dataset4.txt") 
colorMin = 0 
colorMax = 5 
pdf("Region3.heatmap.pdf") 
par(mfrow=c(4,4)) 
heatmap.2(as.matrix( xPos1 ), Rowv=FALSE, Colv=FALSE, dendrogram="none", key=TRUE, density.info="none", trace="none", breaks=seq(colorMin, colorMax, length.out=101)) 
heatmap.2(as.matrix( xPos2), Rowv=FALSE, Colv=FALSE, dendrogram="none", key=TRUE, density.info="none", trace="none", breaks=seq(colorMin, colorMax, length.out=101)) 
heatmap.2(as.matrix( xPos3), Rowv=FALSE, Colv=FALSE, dendrogram="none", key=TRUE, density.info="none", trace="none", breaks=seq(colorMin, colorMax, length.out=101)) 
heatmap.2(as.matrix( xPos4 ), Rowv=FALSE, Colv=FALSE, dendrogram="none", key=TRUE, density.info="none", trace="none", breaks=seq(colorMin, colorMax, length.out=101)) 
dev.off() 

现在正在发生的事情是不是得到一个PDF页面的所有4个热图旁边echother我得到4页的PDF与他们每个人一个热图。

有人能帮助我调整了代码来获得热图的期望结构面板R.

谢谢

+1

以下链接可以帮助:http://stackoverflow.com/questions/13081310/combining-multiple-complex-plots-as-panels-in-a-single-figure – 2015-02-24 19:45:39

+0

'热图''和'heatmap.2'似乎并不尊重'mfrow'或'layout'。另一种选择是使用'图像'功能绘制热点图,并使用'mfrow'或'layout'将它们放置在多面板图中。参见[这里](https://www.biostars.org/p/86379/)。 – eipi10 2015-02-24 20:00:55

回答

0

您可以绘制热图到单独的文件,然后用“蒙太奇”将它们组合从ImageMagick的命令:

m <- matrix(runif(10^2), ncol=10) 
for (i1 in 1:4) { 
    ifile <- paste0(i1,'_heatmap.pdf') 
    pdf(ifile) 
    heatmap(m) 
    d <- dev.off() 
} 
system('montage -geometry 100% -tile 2x2 ./*_heatmap.pdf outfile.pdf')