【问题标题】:Centering color key at bottom of heatmap在热图底部居中颜色键
【发布时间】:2015-01-07 09:48:41
【问题描述】:

我尝试使用gplots 包中的heatmap.2 生成热图。我的目标是生成一个热图,绘图区域和热图之间没有额外的空间(不包括底部的键)。通过查看一些帖子,我设法使用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)

【问题讨论】:

  • 请提供self contained example 以方便人们帮助您。例如,使用?heatmap.2 中第一个示例中的数据。

标签: r heatmap


【解决方案1】:

您可以使用参数key.par 并将mar 设置为合适的值。例如使用dat_matrix &lt;- 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2018-07-13
    相关资源
    最近更新 更多