填充热图缺失值

Fill heatmap missing values

我有一个双变量 table,我想从中制作热图。 这是我的代码:

color <- read.table(textConnection("
Green Red 
0 0
0 1
1 1
0 2
0 5
0 1
0 0
0 0"), header = T)

tab <- table(color)
heatmap(tab, Rowv = NA, Colv = NA)

我想在热图上用 0 填充 "missing" 值,例如水平方向有 0、1、2、3、4、5(第 3 行和第 4 行为 0)而不是 0、1、2、5。

我一直无法通过操纵生成的偶发事件 table("tab")自动或手动执行此操作。

我们可以设置 GreenRed factor 级别,然后 构建 table 以包含 "empty" 关卡。

例如,假设我们要为 Green 考虑水平 0..5,为 Red 考虑水平 0..2

color$Red <- factor(color$Red, levels = as.character(0:5));
color$Green <- factor(color$Green, levels = as.character(0:2));

tab <- table(color);

注意 tab 现在如何包含 0 个空关卡条目

tab;
#     Red
#Green 0 1 2 3 4 5
#    0 3 2 1 0 0 1
#    1 0 1 0 0 0 0
#    2 0 0 0 0 0 0

heatmap(tab, Rowv = NA, Colv = NA)

由于 heatmap 默认情况下按行缩放条目,很难看出缺失级别确实具有 0 值,所以让我们关闭缩放:

heatmap(tab, Rowv = NA, Colv = NA, scale = "none")

这里红色对应0.