4

在此处输入图像描述

如上面的屏幕截图所示,我在heatmap.2()这里使用了该功能。

如何将颜色编码栏中的“值”更改为任何其他名称

可以只使用 gplots 包中的数据:

 library(gplots)

 data(mtcars)

 x  <- as.matrix(mtcars)

 rc <- rainbow(nrow(x), start=0, end=.3)

 cc <- rainbow(ncol(x), start=0, end=.3)

 heatmap.2(x, key=TRUE)

非常感谢 :-)

4

3 回答 3

11

自从@BondedDust 回答以来,功能 heatmap.2 可能已经改变,但现在可以通过以下方式轻松更改 heatmap.2 键标签:

key.xlab="New value"

首先,您的代码(使用标准颜色):

library(gplots)
data(mtcars)
x  <- as.matrix(mtcars)
heatmap.2(x,key=TRUE)

钥匙截图前

现在替换 x 和 y 标签:

library(gplots)
data(mtcars)
x  <- as.matrix(mtcars)
heatmap.2(x, key=TRUE , key.xlab="New value", key.ylab="New count")

钥匙截图后

于 2014-12-24T19:39:56.370 回答
2

它是硬编码的。您需要在代码中更改它。它出现在绘制键的部分的中间,该行是:

else mtext(side = 1, "Value", line = 2)

这是创建键的 heatmap.2 代码部分(至少到出现“值”一词的位置):

 if (key) {
        par(mar = c(5, 4, 2, 1), cex = 0.75)
        tmpbreaks <- breaks
        if (symkey) {
            max.raw <- max(abs(c(x, breaks)), na.rm = TRUE)
            min.raw <- -max.raw
            tmpbreaks[1] <- -max(abs(x), na.rm = TRUE)
            tmpbreaks[length(tmpbreaks)] <- max(abs(x), na.rm = TRUE)
        }
        else {
            min.raw <- min(x, na.rm = TRUE)
            max.raw <- max(x, na.rm = TRUE)
        }
        z <- seq(min.raw, max.raw, length = length(col))
        image(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, 
            xaxt = "n", yaxt = "n")
        par(usr = c(0, 1, 0, 1))
        lv <- pretty(breaks)
        xv <- scale01(as.numeric(lv), min.raw, max.raw)
        axis(1, at = xv, labels = lv)
        if (scale == "row") 
            mtext(side = 1, "Row Z-Score", line = 2)
        else if (scale == "column") 
            mtext(side = 1, "Column Z-Score", line = 2)
        else mtext(side = 1, "Value", line = 2)
 .... lots more code below

您应该键入heatmap.2,然后将源代码复制到编辑器,然后使用搜索功能查找“值”。将“值”更改为其他内容(用引号括起来),然后键入heatmap.2 <-并粘贴代码并按回车键。(除非您保存它,否则它只会在会话继续时持续存在。)

于 2012-10-24T21:41:42.513 回答
1

最近刚遇到同样的任务。现在有一个选项“key.title”来设置刻度入口的标题:

library(gplots)
data(mtcars)
x  <- as.matrix(mtcars)
heatmap.2(x, key.title = "New Title", key.xlab="New value", key.ylab="New count")

在此处输入图像描述

不幸的是,如果入口没有直方图,它就不能正确传播:

library(gplots)
data(mtcars)
x  <- as.matrix(mtcars)
heatmap.2(x, key.title = "New Title", key.xlab="New value", key.ylab="New count")

在此处输入图像描述

好吧,key.xlab 按预期工作,可以代替使用。

我已经检查了 github 上的源代码,它已经在那里修复了。

于 2021-03-07T18:00:51.333 回答