如何调整热图的边距?

How to adjust margins of a heatmap?

我需要调整热图的边距(尤其是顶部和左侧)。

我已经踢掉了颜色键和标题,因为它们使用了我的大部分 space。但现在我只剩下空白 space。我的照片 top/left 不需要那个。我正在使用 heatmap2。我在 heatmap2 中使用了边距,在图片之前使用了 par-margin。但我不确定它们是如何相互作用的。此外,我将图片保存在 svg 中,并在此处也定义了 weight/height。

svg("mypic.svg", width=20, height=16)
par(mar=c(1,10,0.1,10))
heatmap.2(mat_data_round,
          key = F,
          cellnote = note,     
          notecol="black",      
          density.info="none",  
          trace="none",         
          margins =c(7,14),     
          col=colfun,          
          dendrogram="row",    
          Colv="NA",           
          cexRow=2,
          cexCol=2) 

我期望的是不显示 white/blank space.

来源

代码(主要)灵感来自

https://de.wikipedia.org/wiki/Datei:Gdp_to_debt_ratio.svg

我尝试调整和更新这样的东西。

解决方案 与提议的解决方案有一点冲突。我必须删除 main 才能使其正常工作。以下代码删除了树状图功能,这很好。行和列标签是可读的,具有我最终 svg 的预定义宽度和高度。非常感谢

svg("myheatmap.svg", width=20, height=16)
heatmap.2(mat_data_round,
          key = F,
          dendrogram = "none",
          trace = "none",
          cellnote = note,
          notecol="black",  
          col=colfun,  
          Colv="NA",  
          lwid = c(0.2,5),
          lhei = c(0.2,5),
          margins =c(7,14),
          cexRow=2,
          cexCol=2)

您必须使用 lheilwid 参数指定页边距。使用 lhei 可以将边距大小传递到下方和上方,使用 lwid 可以将边距大小传递到右侧和左侧。

更精确: 您的布局是一个包含 4 个单元格的矩阵:1. 热图,2. 键,3. 行树状图,4. 列树状图。使用 lhei 可以指定两行的大小,使用 lwid 可以指定两列的大小。

library(gplots)

data(mtcars)
x  <- as.matrix(mtcars)

lwid=c(0.2,5) #make column of dendrogram and key very small and other colum very big 
lhei=c(0.2,5) #make row of key and other dendrogram very small and other row big. 

heatmap.2(x,
          key = F,
          dendrogram = "none",
          trace = "none",
          lwid = lwid,
          lhei = lhei)