简体   繁体   中英

How can I combine several heatmaps using R in a signal figure

I have created 36 heatmaps with the function pheatmap, and I want to display them in just one figure. I have tried to using the function par(), but it did not work, I do not know why. Could someone tell me what should I do? Thank you very much. This is my code:

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)}

This is one dataset

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

I have 36 txt files like this, but I can not put all of them here "ScaBER 5637" is the column name of this dataset

See this previous answer: 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()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM