[R] Flipping a heatmap

Martin Maechler maechler at stat.math.ethz.ch
Thu Sep 11 14:43:21 CEST 2003

>>>>> "AndyL" == Liaw, Andy <andy_liaw at merck.com>
>>>>>     on Thu, 11 Sep 2003 07:46:16 -0400 writes:

    AndyL> My feeling is that heatmap is not the right thing to
    AndyL> use on a correlation matrix.  

    AndyL> The heatmap function expects a data matrix, and does
    AndyL> a two-way clustering of cases and variables.  It
    AndyL> tries to rearrange the rows and columns so that
    AndyL> similar colors are closer together.  This obviously
    AndyL> will not work for a correlation matrix.  (The
    AndyL> rearrangement is one of several enhancements that
    AndyL> Robert/Martin added to my original attempt.)

    AndyL> If you really want to do it, you may try to find my
    AndyL> original naive version of the heatmap function, which
    AndyL> I posted to the Bioconductor mailing list earlier
    AndyL> this year.  That does not do any rearragement.

Thank you, Andy.  
Further note that the upcoming version of R will also allow the
option of *not* doing any reordering. 

But even then, heatmap() is not quite appropriate for
correlation matrices.

    AndyL> HTH,
    AndyL> Andy

    >> -----Original Message-----
    >> From: David Khabie-Zeitoune [mailto:dave at evocapital.com] 
    >> Sent: Thursday, September 11, 2003 4:04 AM
    >> To: r-help at stat.math.ethz.ch
    >> Subject: [R] Flipping a heatmap
    >> Hi
    >> I am using the heatmap function in package mva to look at 
    >> large correlation matrices visually. Is there any way to 
    >> "flip" the output of heatmap plot left-right so that, if 
    >> presented with a correlation matrix, it plots the unity 
    >> elements in the correlation matrix along a diagonal from top 
    >> left to bottom right?
    >> For example:
    >> library(mva)
    >> x = matrix(rnorm(1000), ncol=10)
    >> z = cor(x)
    >> heatmap(z)
    >> Heatmap calls image, and I've found ways to do it with image e.g:
    >> image(z[1:10,10:1]) 
    >> will plot things the "right" way round, but
    >> heatmap(z[1:10,10:1]) 
    >> does not.
    >> Any help much appreciated.
    >> Cheers,
    >> Dave

More information about the R-help mailing list