[英]Moving color key in R heatmap.2 (function of gplots package)
我现在阅读了热图2帮助手册,并且在各种在线教程中我没有读到关于将颜色键移动到不同位置的方法。 现在,我想知道它是否可能?
如果您使用gplots包中的heatmap.2函数,默认情况下颜色键位于左上角。
可以使用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 4
lwid
和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
工作。
在heatmap.2
的相当长的代码中有par调用定义的指定区域。我没有看到它的原始作者或这些部分周围的任何“revisors”,尽管他们有时会访问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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.