在 R 中创建具有 2 种不同等级颜色的热图

Creating a heatmap with 2 different grades of colour in R

我有以下用于在 R 中创建热图的数据设置:

dat = data.frame(A=c(2,3,0,1), B=c(1,4, 1,0), C=c(4,0,1,1), D=c(2,0,0,4))
rownames(dat) <- c("SKy", "Ing", "Lowl", "embow")
dat.mat = as.matrix(dat)
heatmap(dat.mat, Colv = NA, Rowv = NA)

输出:

如热图输出所示,有从浅奶油色到 wine/burgundy 颜色的颜色分级,以突出显示值 0 到 6。我需要帮助以渐变的红色阴影覆盖值 0 到 6在 A 和 B 列中,并在 C 和 D 列中用渐变的绿色覆盖值 0 到 6。

有人可以帮忙吗?

我真的不确定这是否有帮助,但它至少可以为您指明方向。 您可以定义两种配色方案,一种用于 cols AB,一种用于 CD,例如:

myCol_AB <- c("orange", "orangered", "red", "firebrick")
myCol_CD <- c("aquamarine", "chartreuse", "green", "green4")

在对 heatmap 的调用中,您可以插入一个 ifelse 语句,将 myCol_AB 分配给 cols Aand B and myCol_CD to CD

heatmap(dat.mat, Colv = NA, Rowv = NA, 
        col = ifelse(dat.mat[, 1:2], myCol_AB, myCol_CD))