如何在R中的一个窗口中绘制多个热图

时间:2015-02-24 19:07:06

标签: 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()

现在正在发生的事情是,而不是获得一个包含所有4个热图的pdf页面,我将获得4页pdf,每个页面都有一个热图。

有人可以帮我调整代码,以便在R中获得所需的热图结构面板。

谢谢

1 个答案:

答案 0 :(得分: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')