Question: Key With Heatmap
4
gravatar for Diana
7.5 years ago by
Diana790
Germany
Diana790 wrote:

Hi, I am making heatmaps using R. The heatmap function in R does not support a key with the heatmap. Does anyone know how to give a key with the heatmap based on colours? Many thanks

R heatmap • 4.5k views
ADD COMMENTlink modified 7.5 years ago by Madelaine Gogol5.1k • written 7.5 years ago by Diana790
9
gravatar for Madelaine Gogol
7.5 years ago by
Madelaine Gogol5.1k
Kansas City
Madelaine Gogol5.1k wrote:

My general answer would be to use image(). I never really liked the way heatmap.2 looked.

Here's my image plot function with a corresponding color scale.

mcm_image<-function(data,colors,title="",zlim=c(floor(min(data,na.rm=T)),ceiling(max(data,na.rm=T))),addgrid=F,cexCol=.8,cexRow=.1,...)
{
    library(RColorBrewer)
    par(mar=c(7,2,4,7))
    image(t(data[nrow(data):1,]),axes=F,col=colors,zlim=zlim)

    #adding the grid.
    if(addgrid)
    {
        abline(v=seq(-1*seq(0,1,length.out=ncol(data))[2]/2,1+seq(0,1,length.out=ncol(data))[2]/2,length.out=ncol(data)+1),lwd=.1,col='white')
        abline(h=seq(-1*seq(0,1,length.out=nrow(data))[2]/2,1+seq(0,1,length.out=nrow(data))[2]/2,length.out=nrow(data)+1),lwd=.1,col='white')
    }

    axis(1, at=seq(0,1,length.out=ncol(data)),labels=colnames(data),tick=F,las=2,cex.axis=cexCol,line=-.5)
    axis(4, at=seq(0,1,length.out=nrow(data)), labels=rev(rownames(data)), tick=F,las=2,cex.axis=cexRow,line=-.5)
    mtext(title,side=3,outer=F,cex=1,line=1)

    colorBar <- function(n,col.grad,zlim){
        ColorLevels <- seq(zlim[1],zlim[2],length.out=length(col.grad))
        labels <- seq(zlim[1],zlim[2],length.out=6)
        par(mar=c(1,4,4,5))
        image(t(matrix(ColorLevels,ncol=1)),axes=F,col=col.grad)
        axis(4,at=seq(0,1,length.out=6),tick=F,labels=round(labels,digits=0),cex.axis=.9,las=2,line=-.5)
        mtext("Scale",side=3,outer=F,cex=.6,line=.4)
    }
    colorBar(data,colors,zlim);

}

library(RColorBrewer)
h<-heatmap(as.matrix(data))
nf<-layout(matrix(data=c(1,1,1,2,0,0),nrow=3,ncol=2),widths=c(13,3),TRUE)
layout.show(nf)
mcm_image(data=as.matrix(data)[h$rowInd,h$colInd],colors=colorRampPalette(brewer.pal(9,"Blues")((100),title="Gene Expression in Mouse Tissues",zlim=c(0,130000),addgrid=F)

alt text

ADD COMMENTlink modified 7.5 years ago • written 7.5 years ago by Madelaine Gogol5.1k

That looks good!! thanks a lot Madelaine

ADD REPLYlink written 7.5 years ago by Diana790

hello,

suppose that i have already downloaded GSE63706 and normalized that and i have a normalized text file now. and i have also a list of probsets (a text file of my interest probsets) in this array...i want to have a heat map showing the expression pattern of my interest probsets in this array, for example in this array i have 4 varieties and different tissues (rind and flesh) and phases (0,10,20,30,40 and 50 days after harvesting). heat maps showing the expression pattern of my probsets in varieties, tissues and phases i mean

please...

ADD REPLYlink modified 4.1 years ago • written 4.1 years ago by F3.4k
4
gravatar for Philippe
7.5 years ago by
Philippe1.9k
Barcelona, Spain.
Philippe1.9k wrote:

Hi,

have you tried the heatmap.2 function? It's part of the gplots package and provide a enhanced version of the basic heatmap function. By default, the key is present.

You can see its documentation page there and you can find many additional resources on Google (or even Biostar) if you are still stuck.

ADD COMMENTlink written 7.5 years ago by Philippe1.9k
Please log in to add an answer.

Help
Access

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.3.0
Traffic: 848 users visited in the last hour