我想用热图绘制数据。 但在绘图之前,我想用我自己的函数来扩展它们。
这是完整的代码:
library("gplots")
mydata <- mtcars
# Functions
hclustfunc <- function(x) hclust(x, method="complete")
distfunc <- function(x) dist(x,method="euclidean")
# My own scaling function
customize.zscore <- function(x,cust.mean=1,cust.sd=1) {
themean <- cust.mean
thesd <- cust.sd
z <- (x - themean) / (thesd)
return (z)
}
mean.all <- mean(as.vector(t(mtcars)));
sd.all<- sd(as.vector(t(mtcars)));
# Scale the data
dat.1 <- as.data.frame(t(apply(mtcars,1,function(x) customize.zscore(x,cust.mean=mean.all,cust.sd=sd.all))))
head(dat.1)
# Plot the scaled data
heatmap.2(as.matrix(dat.1),dendrogram="row",trace="none", margin=c(8,9), hclust=hclustfunc,distfun=distfunc);
正如您在head(dat.1)
的输出中所看到的那样,数据的正确缩放范围是从
-0.4703658至5.134808。
但为什么下面的情节没有反映出来呢? 正如你在ColorKey中看到的那样,值的范围是0到5?