4

我正在尝试在 R 中制作一个热图,其中标签文本是彩色的(以指示数据点来自哪个组)。

我目前正在使用 heatmap.2,但很乐意使用另一个包。

heatmap.2(data.matrix(data),trace = 'none', dendrogram='none',ColSideColors=col)

这个调用给了我标签上的彩色条(ColSideColors),但我想让标签本身有颜色。

非常感谢!

4

3 回答 3

3

您将需要创建一个包含该col.axis参数的新函数。这些是要使用的函数行:

# there were four long pages of code before this section:

axis(1, 1:nc, labels = labCol, las = 2, line = -0.5, tick = 0, # original line
        col.axis="green",   # added argument
        cex.axis = cexCol)
if (!is.null(xlab)) 
        mtext(xlab, side = 1, line = margins[1] - 1.25)
axis(4, iy, labels = labRow, las = 2, line = -0.5, tick = 0, # original line
        col.axis="green",   # added argument
        cex.axis = cexRow)
于 2012-11-03T07:35:38.120 回答
0

我最近遇到了同样的问题,最后我用mtext替换原来的axis. 以前的答案已经显示了axis绘制标签的语句。但是,col.axis只能指定一种颜色。要启用矢量颜色,

#    axis(1, 1:nc, labels = labCol, las = 2, line = -0.5, tick = 0, 
#        cex.axis = cexCol )
mtext(side = 1, text = labCol, at = 1:nc, las = 2, line = 0.5,col = ClabColor, cex = cexCol)


#    axis(4, iy, labels = labRow, las = 2, line = -0.5, tick = 0, 
#        cex.axis = cexRow )
mtext(side = 4, text = labRow, at = iy, las = 2, line = 0.5,col = RlabColor, cex = cexCol)

另外,请记住向函数添加另外两个参数,ClabColor = "black", RlabColor = "black". 默认颜色为黑色。

您需要注意的另一件事是,矢量颜色应遵循标签的顺序,这些标签在您计算树状图时会被置换

于 2013-03-28T05:40:45.043 回答
0

由于缺乏评论权限,我无法回复lwz0203,但他们的代码并不完整。您需要添加以下行:

if(is.vector(RlabColor)) {
    RlabColor=RlabColor[rowInd]
}

(同样适用于 ClabColor)

if(is.vector(ClabColor)) {
    ClabColor=ClabColor[colInd]
}

在代码中的某个位置,否则当您使用颜色矢量时,您会得到与标签不匹配的颜色。向量 labRow 或 labCol 中的文本已经使用代码重新排序:

if (is.null(labRow))
    labRow <- if (is.null(rownames(x)))
        (1:nr)[rowInd]
        else rownames(x)
else labRow <- labRow[rowInd] 

所以我在同一个地方添加了 RlabColor 和 ClabColor 的重新排序。

于 2014-01-29T04:18:35.417 回答