В R, как разработать мультиплотную карту Heatmap.2, показывающую ключевые метки успешно - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь разработать многокарточную карту тепла, сохраненную в формате PDF. У меня есть некоторый успех, но метки осей обрезаются. Заголовки сюжетов также желательны, но опять же ярлыки рубят.

Вот мой воспроизводимый код:

library(gridExtra)
library(grid)
library(gridGraphics)
library(gplots)


Col  = colorRampPalette(c("red","orange","yellow", "white"))

grab_grob <- function(){
  grid.echo()
  grid.grab()
}
par(cex.main=0.1, mar = c(1,1,1,1) )
#data<-read.table("heatmap.input.matrix.data.txt")
lmat = rbind(c(2,3),c(4,1),c(4,1))
lwid = c(2.5,4)
lhei = c(0.5,4,3)
labRowvec <- c(rep(NULL, dim(matrix(runif(1000, 1,10),ncol=50))[1]))
labColvec <- c(rep(NULL, dim(matrix(runif(1000, 1,10),ncol=50))[2]))

gl <- lapply(1:12, function(i){
  heatmap.2(matrix(runif(1000, 1,10),ncol=50), dendrogram = "none",offsetRow=-0.5, offsetCol=-1,srtCol=0, density="density",
            lmat =lmat,lhei = lhei,lwid = lwid, xlab="", ylab = "",labRow = labRowvec,labCol = labColvec,
            trace = "none", cexRow = 0.2, cexCol = 0.2, margins = c(0.5,2), scale = "row",Colv = FALSE,Rowv = FALSE,
            col = Col,key.title =   paste0(i,")"),key.xlab = "year",key.ylab = NA,
            keysize = 1, key.par=list(mar=c(1,1, 1, 1)))

  grab_grob()
})

grid.newpage()
library(gridExtra)
# margin = theme(plot.margin = unit(c(0.1,0.1,0.1,0.1), "cm"))
# grid.arrange(grobs = lapply(gl, "+", margin),ncol=2,clip=TRUE)


g = arrangeGrob(grobs = gl, ncol=2,clip=TRUE)
ggsave(file="whatever.pdf", g)

Может ли кто-нибудь помочь мне сохранить метки осей и добавить заголовок участка?

спасибо.

Вот что генерирует код: enter image description here

...