我需要调整热图的边距(尤其是在顶部和左侧)。
我已经淘汰了颜色键和标题,因为它们占用了我的大部分空间。但是现在我有空白。我不需要在图片的顶部/左侧。我正在使用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)
我希望不会显示白色/空白。
来源
(主要)代码受
启发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)
答案 0 :(得分:1)
您必须使用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)