1
library(gplots)
shades= c(seq(-1,0.8,length=64),seq(0.8,1.2,length=64),seq(1.2,3,length=64))
 heatmap.2(cor_mat, dendrogram='none', Rowv=FALSE, Colv=FALSE, col=redblue(64),  
breaks=shades, key=TRUE, cexCol=0.7, cexRow=1, keysize=1)

休息有一些问题。希望得到这方面的帮助。

运行代码后,我收到此错误消息

Error in image.default(1:nc, 1:nr, x, xlim = 0.5 + c(0, nc), ylim = 0.5 + : must have one more break than colour

感谢您的时间和考虑。

4

1 回答 1

3

好吧,我们没有 cor_mat,所以我们不能自己尝试这个,但问题似乎出在罐头上,不是吗?热图(以及通常基于图像的所有函数)与中断和颜色向量一起工作的方式是,中断定义了数据矩阵值的变化意味着颜色变化的点。简而言之,如果break = c(1,2,3)和您的col = c("red", "blue")

  1. values < 1 将是透明的
  2. 值 >= 1, <= 2 将被绘制为红色
  3. values > 2, <= 3 将被绘制为蓝色
  4. values > 3 将是透明的

您的代码中发生的情况是,使用“阴影”,您向 提供了长度为 3*64 的向量break,而redblue(64)只为您提供了 64 种颜色。尝试替换redblue(64)redblue(3*64-1).

于 2012-05-25T08:31:03.577 回答