在 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 A
和 B
,一种用于 C
和 D
,例如:
myCol_AB <- c("orange", "orangered", "red", "firebrick")
myCol_CD <- c("aquamarine", "chartreuse", "green", "green4")
在对 heatmap
的调用中,您可以插入一个 ifelse
语句,将 myCol_AB
分配给 cols A
and B
and myCol_CD
to C
和D
:
heatmap(dat.mat, Colv = NA, Rowv = NA,
col = ifelse(dat.mat[, 1:2], myCol_AB, myCol_CD))
我有以下用于在 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 A
和 B
,一种用于 C
和 D
,例如:
myCol_AB <- c("orange", "orangered", "red", "firebrick")
myCol_CD <- c("aquamarine", "chartreuse", "green", "green4")
在对 heatmap
的调用中,您可以插入一个 ifelse
语句,将 myCol_AB
分配给 cols A
and B
and myCol_CD
to C
和D
:
heatmap(dat.mat, Colv = NA, Rowv = NA,
col = ifelse(dat.mat[, 1:2], myCol_AB, myCol_CD))