heatmap2 lmat,lhei,lwid参数?

时间:2017-07-08 01:26:38

标签: r heatmap

我正在尝试用R中的树状图制作热图。我也试图使其颜色矩阵位于热图的底部。据我所知,我必须为此更改lmat的值。到目前为止,对于lmat我有类似的东西。

 lmat=rbind(c(0,3,0), c(2,1,0), c(0,4,0)).

运行后,它要求我更新lhei和lwid值。查看文档后,我了解这些是列宽和行高的向量。但我不理解他们的价值所需的多个价值观。例如,当我设置此项时,我收到此错误。

  lhei must have length = nrow(lmat) = 3

我不确定lhei的三个值是对应的。这引出了一个更广泛的问题,lhei和lwid向量中的每个值对应于什么?

2 个答案:

答案 0 :(得分:3)

lhei是图中行的相对高度。 R中的热图有点棘手。图形设备(想想要绘制的画布)被划分为一个网格,其中将绘制热图的每个元素:颜色键,树状图和热图。这使得2x2网格。当您添加colsideColors或rowidecolors时,网格在适当的维度中展开1(例如,添加colsidecolors时再增加1行)。当你添加这个额外的行时,你需要告诉R它需要多少(相对)空间。

mat <- matrix(rnorm(200), nrow = 20)
colCols <- rep(c("red", "blue"), 5)
heatmap.2(mat, trace="none", ColSideColors = colCols,
          lmat=rbind(c(5,4), c(3,2), c(0,1)),
          lhei=c(2,4,0.2))

enter image description here

答案 1 :(得分:1)

lmat代表布局矩阵,而在热图2中,默认值是2x2矩阵,用于组织四个分量(1 =热图,2 =行树形图,3 = col树形图,4 =密钥),如下所示: lmat = rbind(c(4,3),c(2,1)) 你的错误“lhei必须有长度= nrow(lmat)= 3”,因为你需要指定新的lhei或布局行高,你的代码现在是3行。在视觉上,它有助于以堆叠格式组织此代码。在您的示例中,我可以清楚地看到键位于热图下方,而零则用作填充。