移动色键中的R heatmap.2(gplots包的功能)(Moving color key in

2019-07-21 09:10发布

我几次,现在读heatmap.2帮助手册,并在各种在线教程我没有看过有关的方式来移动色键到不同的位置。 现在,我想知道是否有可能?

颜色关键是默认情况下在左上角如果您正在使用从gplots包heatmap.2功能。

Answer 1:

在每个元素的位置heatmap.2情节可以使用被控制lmatlheilwid参数。 这些都过去了heatmap.2layout命令:

layout(mat = lmat, widths = lwid, heights = lhei)

lmat是说明屏幕如何被分解的矩阵。 默认情况下,heatmap.2将屏幕划分为四个元件网格,所以lmat是一个2×2矩阵。 在矩阵的每个元素的数字说明什么顺序绘制接下来的四个地块在Heatmap.2绘制了以下顺序的元素:

  1. 热图,
  2. 行树形图,
  3. 列树形图,

所以默认lmat是:

> rbind(4:3,2:1)
     [,1] [,2]
[1,]    4    3
[2,]    2    1

例如,如果你想要把热图下方的关键应指定:

> lmat = rbind(c(0,3),c(2,1),c(0,4))
> lmat
     [,1] [,2]
[1,]    0    3
[2,]    2    1
[3,]    0    4

lwidlhei是指定每行和列的高度和宽度的载体。 默认为c(1.5,4)两种。 如果你改变lmat你要么有或很可能要改变这些孩子的。 对于上面的例子,如果我们想保持所有其他元素的大小相同,但希望在底部薄色键,我们可以设置

>lwid = c(1.5,4)
>lhei = c(1.5,4,1)

我们就准备好绘制热图:

>heatmap.2(x,...,lmat = lmat, lwid = lwid, lhei = lhei)

这将绘制与列树形图的热图上方的行树形图的左边,而下方关键热图。 不幸的是,在关键的标题和标签硬编码。

?layout有关如何更多的细节layout工作。



Answer 2:

有通过参数调用了相当长的代码中定义的特定地区heatmap.2 ,我还没有看到它的原作者或任何“revisors”围绕这些部分,虽然他们对R-帮助的时候参观。 主要情节尺寸由2元素向量设定margins 。 这里有一些地方,你可能需要做出改变:

#1) 
if (!missing(RowSideColors)) {
    par(mar = c(margins[1], 0, 0, 0.5))
    image(rbind(1:nr), col = RowSideColors[rowInd], axes = FALSE)

#2)
if (!missing(ColSideColors)) {
    par(mar = c(0.5, 0, 0, margins[2]))
    image(cbind(1:nc), col = ColSideColors[colInd], axes = FALSE)

#3)
par(mar = c(margins[1], 0, 0, margins[2]))

#4)
par(mar = c(margins[1], 0, 0, 0))

#5)
par(mar = c(0, 0, if (!is.null(main)) 5 else 0, margins[2]))

#6
if (key) {
    par(mar = c(5, 4, 2, 1), cex = 0.75)


文章来源: Moving color key in R heatmap.2 (function of gplots package)