热图 - 调整颜色范围

时间:2012-05-25 06:13:17

标签: r heatmap

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

感谢您的时间和考虑。

1 个答案:

答案 0 :(得分:3)

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

  1. 值< 1将是透明的
  2. 值> = 1,< = 2将被绘制为红色
  3. 值>在图2中,< = 3将被绘制为蓝色
  4. 值> 3将是透明的
  5. 您的代码中发生的事情是,使用'shade',您向break提供了长度为3 * 64的向量,而redblue(64)仅提供了64种颜色。尝试将redblue(64)替换为redblue(3*64-1)