I see now my error, several in fact:
The 'breaks' specified need to be of a similar range to the data range,
and they should be equally spaced.
So in my example:
breaks = seq(0, 0.2, 0.001)
If one needs uneqaully spaced coloring, as i do, then this is achieved
by specifying the approprate color per bin, and repeating the same color
as needed. Script below achives my goal. But if anyone has a simpler
method they'd care to share- would be v. happy to receive!
karl
#achives my goal
library(gplots)
BRKS <- seq(0, 0.2, 0.001)
COLS <- c(rep(heat.colors(4)[1], 10), # 0.00-0.01 bin (10 bins)
rep(heat.colors(4)[2], 40), # 0.01-0.05 'bin' (40 bins)
rep(heat.colors(4)[3], 25), # 0.05-0.075 'bin' (25
bins)
rep(heat.colors(4)[4], 25), # 0.075-0.1 'bin' (25 bins)
rep("gray", (length(BRKS)-100)-1))# 0.10-1.0 'bin'
(100 bins)
set.seed(5)
mat <- matrix(runif(50, min=0, max=0.2), nrow = 10, ncol = 5)
heatmap.2(mat,
Rowv=NULL, Colv=NULL,
col = COLS,
breaks = BRKS,
trace = "none",
dendrogram = "none",
density.info = "none",
margins=c(12, 8))
On 7/19/2010 12:42 PM, Karl Brand wrote:> Esteemed R-users,
>
> heatmap.2() is yielding an inappropriate key based on my colors and
> break-points.
>
> In the reproducible example below, the key is inappropriate (to me)
> because-
>
> 1. 'Orange' is simply not represented in the key, despite its
prescence
> in the heatmap.
> 2. The proportions of the key are clearly out, ie., my largest bin, (0.1
> - 0.2) is half the range, but this bin (colored "gray") clearly
extnds
> bellow the "0.1" tick mark of the key, beyond its specified bin.
>
> What am i missing/doing wrong? Or for a key set up like this example is
> heatmap.2() unsuitable, necessitating production with another graphics
> functions? If so, recommendations appreciated. I have tried ggplot2, but
> struggle getting this function producing what i need. And i just need to
> make a nice key at this point.
>
> All thoughts and suggestions greatly appreciated.
> cheers,
>
> karl
>
>
> #reproducible example:
> library(gplots)
> set.seed(5)
> mat <- matrix(runif(50, min=0, max=0.2), nrow = 10, ncol = 5)
> heatmap.2(mat,
> Rowv=NULL, Colv=NULL,
> col = c(heat.colors(4, alpha = 1), "gray"),
> breaks = c(0, 0.01, 0.05, 0.075, 0.1, 1),
> trace = "none",
> dendrogram = "none",
> density.info = "none",
> margins=c(12, 8))
>
--
Karl Brand <k.brand at erasmusmc.nl>
Department of Genetics
Erasmus MC
Dr Molewaterplein 50
3015 GE Rotterdam
P +31 (0)10 704 3409 | F +31 (0)10 704 4743 | M +31 (0)642 777 268