繁体   English   中英

如何从R包gplots更改heatmap.2图的直方图中的xmax和xmin?

[英]How to change xmax and xmin in histogram part of heatmap.2 plot from the R package gplots?

我有多个类似于以下内容的热图:

X <- matrix(nrow=3, ncol=3)
X[1,] <- c(0.3, 0.4, 0.45)
X[2,] <- c(0.3, 0.7, 0.65)
X[3,] <- c(0.3, 0.4, 0.45)
colnames(X)<-c(1.5, 3, 4)
rownames(X)<-c(1.5, 3, 4)
library(gplots)

heatmap.2( X, Rowv=NA, Colv=NA, col=rev(heat.colors(256)), 
           sepcolor="black", trace="none",dendrogram="none" )

现在,为了使多个此类图看起来更相似,如何使左上方直方图始终介于0和1之间?


根据yuk的回答,我制作了这个版本:

X <- matrix(nrow=3, ncol=3)
X[1,] <- c(0.3, 0.4, 0.45)
X[2,] <- c(0.3, 0.7, 0.65)
X[3,] <- c(0.3, 0.4, 0.45)
colnames(X)<-c(1.5, 3, 4)
rownames(X)<-c(1.5, 3, 4)
library(gplots)

colors <- rev(heat.colors(256))

colbr <- c(seq(0, 1, len=length(colors)+1))
heatmap.2(X, scale="none", col=colors, breaks=colbr,
          key=T, symkey=F, density.info="histogram", trace="none", Rowv=NA, Colv=NA, 
          sepcolor="black", dendrogram="none" )

现在,色阶在0到1位之间,直方图仍然没有。 在此处输入图片说明

我认为最好的方法是设置颜色中断。

这是我通常做的( x是热图矩阵):

n.col=16 # number of colors
cm = redblue(n.col) # red-white-blue colormap
mmx = min(abs(min(x)),abs(max(x))) # find min value, or you can set to a number
colbr <- c(seq(-mmx/2,mmx/2, len=length(cm)+1)) # vector of symmetric breaks
heatmap.2(x, scale="none", col=cm, breaks=colbr,
          key=T, symkey=F, density.info="histogram", trace="none")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM