R gplots heatmap.2 - 使用break参数键不稳定(警告:未排序'中断'将在使用前排序)

时间:2015-06-05 20:53:15

标签: r legend heatmap hierarchical-clustering gplots

我使用来自R中heatmap.2包的gplots函数可视化数据集。基本上我正在对原始数据执行层次聚类分析,同时强制执行heatmap显示数据的有限版本(在-3和+3之间),以限制异常值对热图外观的影响,同时仍保留原始聚类。当我使用完整数据集(fullmousedatamat)时,它工作得很好。但是,当我使用部分数据集(partialmousedatamat),并希望使用与完整数据集相同的键绘制它时,从键中删除了几种颜色,我无法弄清楚为什么。

以下是包含相关数据集和分析的要点:

https://gist.github.com/jeffbruce/7412f567ac57fe1721a3

注意中心白色两侧的第4种颜色是如何掉落的。这对我来说可能是个错误。我收到以下警告信息,我不确定如何解释:

Warning message:
In image.default(z = matrix(z, ncol = 1), col = col, breaks = tmpbreaks,  :
  unsorted 'breaks' will be sorted before use

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

我遇到了同样的问题,我不得不通过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