R 如何调整热图的边距?

R 如何调整热图的边距?,r,heatmap,margins,R,Heatmap,Margins,我需要调整热图的边距(特别是在顶部和左侧) 我已经踢出了颜色键和标题,因为它们占用了我的大部分空间。但现在,我留下了空白。我不需要在我的照片的左上方。我使用的是heatmap2。我在热图2中使用了边距,在图片前使用了标准边距。但我不确定它们是如何相互作用的。此外,我将图片保存在svg中,并在此处定义重量/高度 svg("mypic.svg", width=20, height=16) par(mar=c(1,10,0.1,10)) heatmap.2(mat_data_round,

我需要调整热图的边距(特别是在顶部和左侧)

我已经踢出了颜色键和标题,因为它们占用了我的大部分空间。但现在,我留下了空白。我不需要在我的照片的左上方。我使用的是
heatmap2
。我在热图2中使用了边距,在图片前使用了标准边距。但我不确定它们是如何相互作用的。此外,我将图片保存在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) 
我希望不会显示空白/空白

来源

该代码(主要)受

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

解决方案 与提议的解决方案有一点冲突。我不得不删除
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)

您必须使用
lhei
lwid
参数指定边距。使用
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)

库(gplots)
数据(mtcars)

你需要保留一个树状图吗?树状图的根对于图片来说不是必需的。它们可以被压缩或删除(如果有帮助的话)。这很完美:)下次我将使用mtcar数据作为MWE。我还有一个问题。
热图.2
看起来很完美,但我不能再保存图像了?上面写着“数字边距太大”这很奇怪。。很明显,我可以保存它,因为你在答案中看到了,实际上我们没有改变利润率。尝试
dev.off()
重置边距设置
dev.off()
没有帮助。我试过你的mtcars密码,它起作用了。与我的初始设置还有另一个冲突。我尝试使用
margins=c(7,14)
等不同的组合。这是一个常见的问题。你会发现很多问题。你会找到解决办法的。检查这里。