繁体   English   中英

在热图中使用 2 个或更多 cellnote colors.2 R

[英]Using 2 or more cellnote colors in heatmap.2 R

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

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
)

例子

所需的 output 将在左上角和右下角单元格中具有白色单元格注释,同时在其他单元格中保留黑色单元格注释。 我预计这可能需要修改函数的 源代码 但是,我自己无法提出解决方案。

好吧...显然您可以将矩阵传递给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
)

结果

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM