Search
Question: Fine tuning heatmap.2 graphics
0
gravatar for Marc Saric
11.7 years ago by
Marc Saric70
Marc Saric70 wrote:
Dear all, I like to use heatmap.2 from the gplots library package to automatically plot heatmaps from microarray data. Things work fine so far, but two problems remain: 1. Depending on the amount of data to be displayed, the fontsize of the labels changes dynamically (as it should) and with that, the margin-space required to print the labels changes also (leading to truncated labels sometimes). This can be set manually with margin <- c(x,y); for both x and y axis labels margins. Is there an easy way to compute the required margin size dynamically from -say- the lenght of the longest label-string? 2. Plotting with heatmap.2 in the X11 device gives a plot, in which all the coloured rectangles are drawn without visible separating border between them. When plotting as "pngalpha" with the bitmap device, you can see separating bright borderlines, which -due to the antialiasing- are only partly visible (i.e. some lines are there, some have been removed by the antialiasing). Is there any option to remove this borders when plotting with bitmap and "pngalpha"? I have tried with sepwidth = c(0.0,0.0), sepcolor = "black", but this does not have any visible effect. Thanks in advance. -- Bye, Marc Saric
ADD COMMENTlink modified 11.7 years ago by Wittner, Ben290 • written 11.7 years ago by Marc Saric70
0
gravatar for Sean Davis
11.7 years ago by
Sean Davis21k
United States
Sean Davis21k wrote:
On 3/9/06 6:41 AM, "Marc Saric" <marc.saric at="" gmx.de=""> wrote: > Dear all, > > I like to use heatmap.2 from the gplots library package to automatically > plot heatmaps from microarray data. > > Things work fine so far, but two problems remain: > > 1. Depending on the amount of data to be displayed, the fontsize of the > labels changes dynamically (as it should) and with that, the > margin-space required to print the labels changes also (leading to > truncated labels sometimes). > > This can be set manually with > > margin <- c(x,y); > > for both x and y axis labels margins. > > Is there an easy way to compute the required margin size dynamically > from -say- the lenght of the longest label-string? Not sure here. I imagine it is possible, but I don't know how to do it. > 2. Plotting with heatmap.2 in the X11 device gives a plot, in which all > the coloured rectangles are drawn without visible separating border > between them. > > When plotting as "pngalpha" with the bitmap device, you can see > separating bright borderlines, which -due to the antialiasing- are only > partly visible (i.e. some lines are there, some have been removed by the > antialiasing). > > Is there any option to remove this borders when plotting with bitmap and > "pngalpha"? > > I have tried with > > sepwidth = c(0.0,0.0), > sepcolor = "black", > > but this does not have any visible effect. If I remember, heatmap.2 doesn't actually put any separators between the columns/rows by default. (You can glance at the code to check.) This happens on some viewers with some formats, but the view that you see with the X11 device is the one that heatmap.2 is actually drawing, I think, so there isn't a way to eliminate this effect with those other devices. Try pdf or ps devices and see what you get. Sean
ADD COMMENTlink written 11.7 years ago by Sean Davis21k
0
gravatar for Wittner, Ben
11.7 years ago by
Wittner, Ben290
USA/Boston/Mass General Hospital
Wittner, Ben290 wrote:
> -----Original Message----- > From: bioconductor-bounces at stat.math.ethz.ch [mailto:bioconductor- > bounces at stat.math.ethz.ch] On Behalf Of Marc Saric > Sent: Thursday, March 09, 2006 6:41 AM > To: bioconductor at stat.math.ethz.ch > Subject: [BioC] Fine tuning heatmap.2 graphics > > Dear all, > > I like to use heatmap.2 from the gplots library package to automatically > plot heatmaps from microarray data. > > Things work fine so far, but two problems remain: > > 1. Depending on the amount of data to be displayed, the fontsize of the > labels changes dynamically (as it should) and with that, the > margin-space required to print the labels changes also (leading to > truncated labels sometimes). > > This can be set manually with > > margin <- c(x,y); > > for both x and y axis labels margins. > > Is there an easy way to compute the required margin size dynamically > from -say- the lenght of the longest label-string? I have used the following code for setting margins for heatmap() (not heatmap2()): margin.factor <- 12 marg <- max(5, min(20, ceiling(margin.factor*max.nchar/ncol(expr3)))) margins <- c(marg, marg) where max.nchar is the max length of column label and expr3 is the matrix being displayed. It worked okay but not completely satisfactorily. BTW, what is the advantage of heatmap2() over heatmap()? Does anyone know of a heatmap()-like function that can add multiple rows of column colors (each row corresponding, say, to various phenotypic parameters) such as can be done with dChip? Thanks. -Ben
ADD COMMENTlink written 11.7 years ago by Wittner, Ben290
Wittner, Ben, Ph.D. wrote: > I have used the following code for setting margins for heatmap() (not > heatmap2()): > > margin.factor <- 12 > marg <- max(5, min(20, ceiling(margin.factor*max.nchar/ncol(expr3)))) > margins <- c(marg, marg) Thanks, will try. > where max.nchar is the max length of column label and expr3 is the > matrix being displayed. It worked okay but not completely satisfactorily. > BTW, what is the advantage of heatmap2() over heatmap()? Mostly that you get more options to tweak the graphics, like a color- key and some more color-schemas out of the box. > Does anyone know of a heatmap()-like function that can add multiple rows of > column colors (each row corresponding, say, to various phenotypic parameters) > such as can be done with dChip? Not that I would know. -- Bye, Marc Saric
ADD REPLYlink written 11.7 years ago by Marc Saric70
Hi, In a similar vein, is there a simple (?) way of manually setting the height/width of the heatmap rows/columns per se, not just change font size scaling of labels/legends, i.e. for non-symmetrical matrices? Thanks for any suggestions, Cheers, al > -----Original Message----- > From: bioconductor-bounces at stat.math.ethz.ch > [mailto:bioconductor-bounces at stat.math.ethz.ch] On Behalf Of > Marc Saric > Sent: 09 March 2006 15:19 > To: Wittner, Ben, Ph.D. > Cc: bioconductor at stat.math.ethz.ch > Subject: Re: [BioC] Fine tuning heatmap.2 graphics > > > Wittner, Ben, Ph.D. wrote: > > > I have used the following code for setting margins for > heatmap() (not > > heatmap2()): > > > > margin.factor <- 12 > > marg <- max(5, min(20, > ceiling(margin.factor*max.nchar/ncol(expr3)))) > > margins <- c(marg, marg) > > Thanks, will try. > > > > where max.nchar is the max length of column label and expr3 is the > > matrix being displayed. It worked okay but not completely > > satisfactorily. > > > BTW, what is the advantage of heatmap2() over heatmap()? > > Mostly that you get more options to tweak the graphics, like > a color-key and some more color-schemas out of the box. > > > > Does anyone know of a heatmap()-like function that can add multiple > > rows of column colors (each row corresponding, say, to various > > phenotypic parameters) such as can be done with dChip? > > Not that I would know. > > > -- > Bye, > > Marc Saric > > _______________________________________________ > Bioconductor mailing list > Bioconductor at stat.math.ethz.ch > https://stat.ethz.ch/mailman/listinfo/biocondu> ctor >
ADD REPLYlink written 11.7 years ago by Al Ivens270
On 3/9/06 10:30 AM, "Al Ivens" <alicat at="" sanger.ac.uk=""> wrote: > Hi, > > In a similar vein, is there a simple (?) way of manually setting the > height/width of the heatmap rows/columns per se, not just change font > size scaling of labels/legends, i.e. for non-symmetrical matrices? Are you using heatmap or heatmap.2? Heatmap.2 defaults to not forcing a square image. Heatmap, though, defaults to a square image. Is this to what you are referring? Sean
ADD REPLYlink written 11.7 years ago by Sean Davis21k
Hi Sean, Thanks for this. > Are you using heatmap or heatmap.2? Heatmap.2 defaults to > not forcing a square image. Heatmap, though, defaults to a > square image. Is this to what you are referring? Sort of! Most of the "problems" stem from saving the plot out to a png, but it seems one can get around this by specifying "height" as an appropriate direct multiple of the matrix rows, and letting "width" sort itself out. Probably a fairly esoteric query, but is there a way of controlling the aspect ratio of the cells that make up the map, i.e. do they HAVE to be rectangles? Cheers and thanks, a > > Sean > >
ADD REPLYlink written 11.7 years ago by Al Ivens270
On 3/10/06 8:58 AM, "Al Ivens" <alicat at="" sanger.ac.uk=""> wrote: > Hi Sean, > > Thanks for this. > >> Are you using heatmap or heatmap.2? Heatmap.2 defaults to >> not forcing a square image. Heatmap, though, defaults to a >> square image. Is this to what you are referring? > > Sort of! Most of the "problems" stem from saving the plot out to a png, > but it seems one can get around this by specifying "height" as an > appropriate direct multiple of the matrix rows, and letting "width" sort > itself out. > > Probably a fairly esoteric query, but is there a way of controlling the > aspect ratio of the cells that make up the map, i.e. do they HAVE to be > rectangles? You could probably make a wrapper that includes a calculation of the approximate size of the resulting image (assuming that you want approximately square cells) given the number of genes/samples, do the appropriate png() or pdf() command with the calculated height/width specified, then do the heatmap[.2]() command. Sean
ADD REPLYlink written 11.7 years ago by Sean Davis21k
> BTW, what is the advantage of heatmap2() over heatmap()? heatmap.2 can show a color key (use key=True) and density information histograms. The color key is probably not so important if you are letting the heatmap function scale your data - see also option scale="none" > Does anyone know of a heatmap()-like function that can add multiple rows of > column colors (each row corresponding, say, to various phenotypic parameters) > such as can be done with dChip? No, but its a question I had been wondering about too. Peter
ADD REPLYlink written 11.7 years ago by Peter RPy List10
An embedded and charset-unspecified text was scrubbed... Name: not available Url: https://stat.ethz.ch/pipermail/bioconductor/attachments/20060309/ f4d7fbec/attachment.pl
ADD REPLYlink written 11.7 years ago by Alexander Ploner20
> BTW, what is the advantage of heatmap2() over heatmap()? heatmap.2 can show a color key (use key=True) and density information histograms. The color key is probably not so important if you are letting the heatmap function scale your data - see also option scale="none" > Does anyone know of a heatmap()-like function that can add multiple rows of > column colors (each row corresponding, say, to various phenotypic parameters) > such as can be done with dChip? No, but its a question I had been wondering about too. Peter
ADD REPLYlink written 11.7 years ago by Peter170
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.2.0
Traffic: 97 users visited in the last hour