如何调整热图的边距?

时间:2019-03-26 08:47:42

标签: r heatmap margins

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

我已经淘汰了颜色键和标题,因为它们占用了我的大部分空间。但是现在我有空白。我不需要在图片的顶部/左侧。我正在使用heatmap2。我在heatmap2中使用了边距,并在图片前使用了标准边距。但是我不确定它们是如何相互作用的。此外,我将图片保存在svg中,并在此处定义重量/高度。

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) 

我希望不会显示白色/空白。

Heatmap

来源

(主要)代码受

启发

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)

1 个答案:

答案 0 :(得分:1)

您必须使用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)

enter image description here