Search
Question: cexRow problem
0
6.1 years ago by
Alyaa Mahmoud440
Alyaa Mahmoud440 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 ?? 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 -- Alyaa Mahmoud "Love all, trust a few, do wrong to none"- Shakespeare [[alternative HTML version deleted]]
modified 6.1 years ago by James W. MacDonald48k • written 6.1 years ago by Alyaa Mahmoud440
0
6.1 years ago by
United States
James W. MacDonald48k wrote:
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