热图调整颜色范围

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
额外 编辑
意见: 1
在运行这段代码后,我得到这个错误信息:image.default(1:nc,1:nr,x,xlim = 0.5 + c(0,nc),ylim = 0.5 +是问题
额外 作者 rockswap,
你的问题是什么?休息时有什么问题?你需要什么帮助?
额外 作者 Andrie,
请将这些信息添加到您的问题中。
额外 作者 Andrie,

1 答案

那么,我们没有cor_mat,所以我们不能自己尝试,但问题似乎是它在罐子上说的,不是吗?散热图(通常基于图像的所有功能)以间断和颜色矢量处理的方式是,中断定义了数据矩阵值的变化意味着颜色变化的点。简而言之,如果 break = c(1,2,3),并且您的 col = c(“red”,“blue”)

  1. values < 1 will be transparent
  2. values >= 1, <= 2 will be plotted as red
  3. values > 2, <= 3 will be plotted as blue
  4. values > 3 will be transparent

代码中发生的事情是,'shade'提供了一个长度为3 * 64的向量到 break ,而 redblue(64)只给你64种颜色。尝试用 redblue(3 * 64-1)替换 redblue(64)

2
额外
谢谢。用(3 * 64-1)代替它工作。
额外 作者 rockswap,