【发布时间】:2013-08-26 09:31:01
【问题描述】:
我有多个类似于以下的热图:
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 位之间,直方图仍然没有。
【问题讨论】:
-
如果固定色标,为什么要改变直方图?为此,您必须缩放数据,因此 0.3 变为 0,0.7 变为 1。这是您想要的吗?
-
没有。我有多个这样的图表,我希望直方图覆盖所有这些图表的相同范围。就像现在一样,对应于直方图主食的值,例如位于这些直方图的两个中间的值将不同,而是取决于它们各自的热图中的最大值和最小值。我想让它尽可能容易地比较这种类型的多个图表。但是修复色阶绝对是朝着正确方向迈出的一步,尽管我没有在这个最小的工作示例中包含一些内容。
-
因此,如果您可以手动设置轴,那么您可以确定所有数据集的最大值并将轴设置为相同。这会实现你想要的吗?
-
是的,这是解释我想要什么的好方法。