在热图底部居中颜色键

时间:2015-01-07 09:48:42

标签: r heatmap

我尝试使用heatmap.2包中的gplots生成热图。我的目标是生成热图,在绘图区域和热图之间没有额外的空间(不包括底部的键)。通过查看一些帖子,我设法使用lmat将热图映射到绘图区域(这样左侧部分没有空格)。但我无法将颜色键置于情节下方。因此,由于投影在右侧的色标比例,因此存在一些空间。 任何人都可以告诉我如何在底部的热图的中心制作颜色键(从而避免额外的空间问题)。 我无法显示图像。我使用以下代码生成热图。

library(gplots)
dat <- read.csv("C:..../xxx.csv")
dat_matrix <- data.matrix(dat)
colors = c(seq(-2,-1,length=100),seq(-1,1,length=100),seq(1,2,length=100))
my_palette <- colorRampPalette(c("green","black","red"))(n = 299)
lmat = rbind(c(1,3),c(2,1),c(1,4))
lwid = c(1,4)
lhei = c(1,4,1.2)
heatmap.2(dat_matrix, dendrogram="none", Rowv = FALSE, Colv = FALSE,
          col = my_palette, breaks = colors, scale = "none", key = TRUE,
          density.info = "none", trace = "none", labRow = FALSE, symm = FALSE,
          symkey = TRUE, symbreaks = TRUE, lmat = lmat, lwid = lwid, lhei = lhei)

1 个答案:

答案 0 :(得分:0)

您可以使用参数key.par并将mar设置为合适的值。例如,使用dat_matrix <- as.matrix(mtcars)以及您的数据,我使用mar=c(8,0,0,12)。您必须弄清楚哪些mar最适合您的数据。

heatmap.2(dat_matrix, 
          dendrogram="none", 
          Rowv=FALSE, 
          Colv=FALSE, 
          col = my_palette, 
          breaks=colors,      
          scale="none", 
          key=TRUE, 
          key.par = list(mar= c(8, 0, 0, 12)),
          density.info="none", 
          trace="none", 
          labRow=FALSE, 
          symm=F,
          symkey=T,
          symbreaks=T, 
          lmat = lmat, 
          lwid = lwid, 
          lhei = lhei)