以下代码:
library(RColorBrewer)
library(gplots)
dat <- mtcars
# normalize here
dat <- t(apply(dat, 1, function(x) log2(x+1)/sum(log2(x+1)) ))
heatcol <- brewer.pal(9, "Reds")
dat.m <- as.matrix(dat)
heatmap.2(dat.m,
Colv=FALSE, # We want to maintain column order
Rowv=FALSE,
key=TRUE,
symbreaks=TRUE,
col=heatcol,
dendrogram="none",
scale="none", # because we already normalize
trace="none",
labRow=FALSE,
density.info="none",
keysize=2);
产生这个数字:
请注意:1)我们已经执行了预标准化和2)scale = "none"
。
但为什么在颜色键中刻度从-0.2到0.2?
如何更改代码以使颜色键在0到1之间缩放?
理想情况下,最终绘图的值为0,编码为白色。
答案 0 :(得分:1)
只需使用heatmap.2()
选项symkey=FALSE
,颜色键将从0到c。 0.24(矩阵的最大值)。
如果您需要0为白色,则必须定义不同的调色板,因为您的颜色只包含红色。