【问题标题】:Using 2 or more cellnote colors in heatmap.2 R在 heatmap.2 R 中使用 2 种或更多 cellnote 颜色
【发布时间】:2021-04-08 19:52:25
【问题描述】:

我目前正在制作一个使用复杂离散色标(大约 34 种不同颜色)的热图。有些颜色是深色的,而另一些是浅色的。我用heatmap.2() 函数的cellnote 参数标记单元格。由于单元格的某些背景颜色非常暗,因此当使用黑色单元格注释颜色时,无法看到单元格标签。同样,当使用较浅的 cellnote 颜色时,无法看到具有浅背景颜色的单元格中的标签。想知道是否可以在使用“heatmap.2()”函数生成的单个热图中有不同的 cellnote 颜色。下面是一个小例子:

library(gplots)
x <- cbind(c(0.5, 1.5), c(1.5, 0.5))
pal <- c("darkblue", "lightblue")
heatmap.2(
    x,
    Rowv = FALSE,
    Colv = FALSE,
    dendrogram = "none",
    key = FALSE,
    trace = "none",
    col = pal,
    breaks = seq(0, 2),
    cellnote = x,
    notecol = "black",
    notecex = 2
)

所需的输出是在左上角和右下角的单元格中有白色的单元格注释,而在其他单元格中保留一个黑色的单元格注释。我预计这可能需要修改函数的source code。但是,我自己还没有想出解决方案。

【问题讨论】:

    标签: r gplots


    【解决方案1】:

    嗯...显然您可以将矩阵传递给notecol 参数哈哈。我认为这最初是不可能的,因为在文档中它说“字符串”,但我之前没有尝试过是不好的。但是,出于某种原因,我似乎必须反转颜色字符矩阵的列才能实际获得所需的结果?这有点奇怪,但它有效:

    notemat <- cbind(c("white", "black"), c("black", "white"))
    heatmap.2(
        x,
        Rowv = FALSE,
        Colv = FALSE,
        dendrogram = "none",
        key = FALSE,
        trace = "none",
        col = pal,
        breaks = seq(0, 2),
        cellnote = x,
        notecol = apply(notemat, 2, rev),
        notecex = 2
    )
    

    【讨论】:

      猜你喜欢
      • 2013-12-28
      • 2013-07-23
      • 1970-01-01
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多