gplots 画热图片

用gplots包中的heatmap.2函数就可以画出想要的热图heatmap
下面举一个例子,作为演示,大家就会知道怎么画这种图。
当然,需求样式,还得根据heatmap.2中的参数自己调整

library(gplots)
data(mtcars)
x <- as.matrix(mtcars)
rc <- rainbow(nrow(x), start=0, end=.3)
cc <- rainbow(ncol(x), start=0, end=.3)

heatmap.2(x) ## default - dendrogram plotted and reordering done.
heatmap.2(x, dendrogram="none") ## no dendrogram plotted, but reordering done.
heatmap.2(x, dendrogram="row") ## row dendrogram plotted and row reordering done.
heatmap.2(x, dendrogram="col") ## col dendrogram plotted and col reordering done.

heatmap.2(x, keysize=2) ## default - dendrogram plotted and reordering done.

heatmap.2(x, Rowv=FALSE, dendrogram="both") ## generate warning!
heatmap.2(x, Rowv=NULL, dendrogram="both") ## generate warning!
heatmap.2(x, Colv=FALSE, dendrogram="both") ## generate warning!

hv <- heatmap.2(x, col=cm.colors(256), scale="column",
RowSideColors=rc, ColSideColors=cc, margin=c(5, 10),
xlab="specification variables", ylab= "Car Models",
main="heatmap(, ..., scale="column")",
tracecol="green", density="density")

str(hv) # the two re-ordering index vectors

data(attitude)
round(Ca <- cor(attitude), 2)
symnum(Ca) # simple graphic

with reorder

heatmap.2(Ca, symm=TRUE, margin=c(6, 6), trace="none" )

without reorder

heatmap.2(Ca, Rowv=FALSE, symm=TRUE, margin=c(6, 6), trace="none" )

Place the color key below the image plot

heatmap.2(x, lmat=rbind( c(0, 3), c(2,1), c(0,4) ), lhei=c(1.5, 4, 2 ) )

Place the color key to the top right of the image plot

heatmap.2(x, lmat=rbind( c(0, 3, 4), c(2,1,0 ) ), lwid=c(1.5, 4, 2 ) )

For variable clustering, rather use distance based on cor():

data(USJudgeRatings)
symnum( cU <- cor(USJudgeRatings) )

hU <- heatmap.2(cU, Rowv=FALSE, symm=TRUE, col=topo.colors(16),
distfun=function(c) as.dist(1 - c), trace="none")

The Correlation matrix with same reordering:

hM <- format(round(cU, 2))
hM

now with the correlation matrix on the plot itself

heatmap.2(cU, Rowv=FALSE, symm=TRUE, col=rev(heat.colors(16)),
distfun=function(c) as.dist(1 - c), trace="none",
cellnote=hM)

genechip data examples

Not run:

library(affy)
data(SpikeIn)
pms <- SpikeIn@pm

just the data, scaled across rows

heatmap.2(pms, col=rev(heat.colors(16)), main="SpikeIn@pm",
xlab="Relative Concentration", ylab="Probeset",
scale="row")

fold change vs "12.50" sample

data <- pms / pms[, "12.50"]
data <- ifelse(data>1, data, -1/data)
heatmap.2(data, breaks=16, col=redgreen, tracecol="blue",
main="SpikeIn@pm Fold Changes\nrelative to 12.50 sample",
xlab="Relative Concentration", ylab="Probeset")

End(Not run)

posted @ 2017-06-21 14:22  ywliao  阅读(804)  评论(0编辑  收藏  举报