我正在用r中gplots
包中的heatmap.2
函数可视化一个数据集。基本上,我正在对原始数据执行分层聚类分析,同时强制热图显示数据的有限版本(-3和+3之间),以限制异常值对热图外观的影响,同时仍然保留原始聚类。当我使用完整的数据集(fullmousedatamat
)时,它工作得很好。然而,当我使用部分数据集(partialmousedatamat
),并希望使用与完整数据集相同的键来绘制它时,几个颜色从键中掉了出来,我不知道为什么。
以下是包含相关数据集和分析的要点:
https://gist.github.com/jeffbruce/7412f567ac57fe1721a3注意中间白色两边的第四个颜色是如何被去掉的。我觉得这可能是个bug。我得到以下警告消息,我不确定如何解释:
Warning message:
In image.default(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks, :
unsorted 'breaks' will be sorted before use
谢谢你的帮助!
我遇到了同样的问题,我不得不通过heatmap.2
的代码来解决它。
事实证明,默认的symkey=T
在breaks
的两端添加了数据的极值,使其未排序:
tmpbreaks <- breaks
if (symkey) {
max.raw <- max(abs(c(x, breaks)), na.rm = TRUE)
min.raw <- -max.raw
tmpbreaks[1] <- -max(abs(x), na.rm = TRUE)
tmpbreaks[length(tmpbreaks)] <- max(abs(x), na.rm = TRUE)
}
因此,解决这个问题的简单方法是添加symkey=F
,如果您提供自己的break