[BioC] cexRow problem

James W. MacDonald jmacdon at uw.edu
Wed Oct 3 15:46:49 CEST 2012


Hi Alyaa,

On 10/2/2012 6:59 PM, Alyaa Mahmoud wrote:
> Hi All
>
> I am trying to generate a heatmap for a matrix of 360 rows and 11 columns,
> I need the row labels to be readable from within the heatmap by zooming or
> so. I use heatmap.2 function but when I decrease cexRow to any value lower
> than 0.06, the labels just disappear, i.e. they don't get any smaller. I
> also tried the margins argument within heatmap.2 function but this didn't
> solve the problem.
>
> Any help with this regards ??

I have rarely found the need to set the cexCol argument, and have found 
that the better idea is to make the resulting image of the right 
dimensions. I assume here that you are creating a heatmap with lots of 
rows, and comparatively speaking, much fewer columns. If you don't 
specify the dimensions of the output, then you will get a square-ish 
heatmap with really thin rows that are hard to label.

If instead, you specify that the heatmap will be a really tall thin 
object, then you get something closer to what you are likely interested 
in. Try something like this:

pdf("tmp.pdf", width = 8, height = 200) ## you may need to play with the 
height arg
heatmap.2(as.matrix(bb), scale="row", key=TRUE, symkey=FALSE, 
density.info="none", trace="none", cexCol=0.2, dendrogram="both", 
Rowv=rowv, col=brewer.pal(9,"BuPu"))
dev.off()

You can use jpeg(), png(), etc, but note that those are raster graphics 
that won't scale without becoming pixellated, whereas pdfs are vector 
graphics that will scale well. If you are on windows you might consider 
win.metafile() as well, but in my experience the column labels get 
mis-placed more often than not (being put right on top of the lower 
portion of the heatmap). So I tend to stick with pdfs.

If you need something square-ish for e.g., a publication, then the rows 
won't be legible anyway. In that case it seems to me that most people 
just forgo row labels altogether.

Best,

Jim



>
> heatmap.2(as.matrix(bb), scale="row", key=TRUE, symkey=FALSE,
> density.info="none",
> trace="none", cexRow=0.06, cexCol=0.2, dendrogram="both", Rowv=rowv,
> col=brewer.pal(9,"BuPu"))
>
> Thanks a lot
> Alyaa
>

-- 
James W. MacDonald, M.S.
Biostatistician
University of Washington
Environmental and Occupational Health Sciences
4225 Roosevelt Way NE, # 100
Seattle WA 98105-6099



More information about the Bioconductor mailing list