如何在信号图中使用R组合多个热图

时间:2014-08-31 04:20:17

标签: r par pheatmap

我用pheatmap函数创建了36个热图,我想在一个图中显示它们。我试过使用函数par(),但它不起作用,我不知道为什么。有人能告诉我该怎么办?非常感谢你。这是我的代码:

require(graphics);require(grDevices);library("pheatmap", lib.loc="D:/Program Files/R/R-3.1.1/library");library(gplots)
filenames<-list.files("D:/Project/bladder cancer/heatmap0829/heatmap/"); # detect all of the files in the fold
filename2<-strtrim(filenames,nchar(filenames)-4); # all of the filenames without extension names
par(mfrow=c(18,2)) #divide the graphics windows into a 18x2 matrix
for(i in 1:length(filename2)){
rt<-read.table(paste("D:/Project/bladder cancer/heatmap0829/heatmap/",filenames[i],sep = ""), header = T, sep = '\t') # Import the data with the ith file name
size=dim(rt) # the dimensional of the datafram
 cw=400/size[1] #the width of the cell in the heatmap
rt<-log10(rt)
x <- t(data.matrix(rt))
pheatmap(x,color=greenred(256),main=filename2[i],cluster_rows = F, cluster_cols = T,cellwidth = cw, cellheight = 60,border_color =F,fontsize = 8,fontsize_col = 15)}

这是一个数据集

ScaBER  5637
1   1.010001e+02
1.341186e+00    2.505067e+01
1.669456e+01    8.834190e+01
7.141351e+00    3.897474e+01
1.585592e+04    5.858210e+04
1   3.137979e+01
1.498863e+01    7.694948e+01
1.115443e+02    3.642917e+02
1.157677e+01    5.036716e+01
4.926492e+02    8.642784e+03
3.047117e+00    1.872154e+01

我有36个这样的txt文件,但我不能把它们放在这里 &#34; ScaBER 5637&#34;是此数据集的列名称

1 个答案:

答案 0 :(得分:1)

请参阅上一个答案:Histogram, error: Error in plot.new() : figure margins too large

par(mfcol=c(3,12), oma=c(1,1,0,0), mar=c(1,1,1,0), tcl=-0.1, mgp=c(0,0,0))


for(i in 1:36){

  plot(runif(2), runif(2), type="l")

}

dev.off()