Skip to content
Prev 201128 / 398503 Next

How to reproduce heatmap.2()'s result?

I want to understand what heatmap.2() is exactly doing. So I tried the
following program. But the results by image() is still not the same as
the result by heatmap.2(). Could somebody let me know how to make both
results the same (in terms of the x and y axis label orders)?



#####################
set.seed(0)
m=10
n=40
x=replicate(n,rnorm(m))

rownames(x)=1:m
colnames(x)=1:n

dir.create('main', showWarnings=T)

ahclust=hclust(dist(x))
ahclustt=hclust(dist(t(x)))

png('main/image.png')

clustered_x=x[ahclust$order, ahclustt$order]

image(t(clustered_x),axes=F)
axis(side=1,at=seq(from=par()$usr[1],to=par()$usr[2],length=n),labels=colnames(clustered_x),las=2,cex.axis=.5)
axis(side=2,at=seq(from=par()$usr[3],to=par()$usr[4],length=m),labels=rownames(clustered_x),las=2,cex.axis=.5)

dev.off()

library(gplots)
png('main/heatmap.2.png')
heatmap.2(x,scale='none',trace='none')
dev.off()