Heatmap.2 颜色渐变,带有额外的纯色

Heatmap.2 color gradient with an additional solid color

我使用的热图使用 heatmap.2:

创建了从 0.7 到 1.3 的梯度
heatmap.2(lifespan.matrix, col=bluered, breaks=c(seq(0.7,1.3,0.01)),
Rowv = FALSE, Colv = FALSE, trace="none", main="Lifespan")

在热图中,您可以看到渐变出现通常以蓝色实线结束。发生这种情况是因为矩阵中这些点的值为零。

我想在标记为 0 的矩阵中将此颜色更改为不同的颜色,即黄色。 谁能帮我解决这个问题?

breaks <- seq(0.7,1.3,0.01)
lifespan.matrix <- matrix(sample(c(breaks,rep(0,100)),100,replace=TRUE),nrow=10)
heatmap.2(lifespan.matrix, col=c("#FFFF00",bluered(length(breaks)-2)), breaks=breaks, Rowv = FALSE, Colv = FALSE, trace="none", main="Lifespan")

您指定与中断关联的确切颜色。

一个简单有效的解决方法是用矩阵中的 NA 替换零值,并用 heatmap.2na.color 参数分别给它们着色。看我对这个问题的回答: