我现在已经阅读了Hotmap.2帮助手册几次了,而且在各种在线教程中,我也没有读到将颜色键移动到不同位置的方法。现在,我想知道这是否可能?
如果您使用的是gplots软件包中的heatmap.2函数,则颜色键默认位于左上角。
发布于 2013-03-12 22:56:49
可以使用lmat、lhei和lwid参数控制heatmap.2图中每个元素的位置。这些代码由heatmap.2传递给layout命令,如下所示:
layout(mat = lmat, widths = lwid, heights = lhei)lmat是一个描述如何拆分屏幕的矩阵。默认情况下,heatmap.2将屏幕划分为四个元素的网格,因此lmat是一个2x2矩阵。矩阵中每个元素中的数字描述了绘制下四个图的顺序。Heatmap.2按以下顺序绘制其元素:
、
因此,默认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 4lwid和lhei是指定每行和每列的高度和宽度的向量。两者的默认值均为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。
发布于 2013-03-12 09:41:25
在heatmap.2相当长的代码中,有一些由par调用定义的特定区域,我没有看到它的原始作者或这些部分的任何“修订者”,尽管他们有时会访问R-help。主要绘图尺寸由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)https://stackoverflow.com/questions/15351575
复制相似问题