[R] heatmap with levelplot
Antje
antje.niederlein at yahoo.de
Mon Jan 26 15:33:47 CET 2009
I played a little bit around and got the following solution which works for
now, though it seems to be too complicated to me.
If anybody else know another solution - please let me know!!!
library(lattice)
my.mat <- matrix(rnorm(800), nrow = 40)
colorFun <- colorRampPalette(c("yellow","red"))
b <- boxplot(my.mat, plot = FALSE)
thr <- c(b$stats[1],b$stats[5])
col.bins <- 100
step <- abs(thr[2] - thr[1])/50
limit <- ifelse(min(my.mat) > thr[1] - step, min(my.mat) - step, min(my.mat))
lp <- rev(seq(thr[1] - step, limit - step, -step))
mp <- seq(thr[1], thr[2], step)
limit <- ifelse(max(my.mat) < thr[2] + step, max(my.mat) + step, max(my.mat))
up <- seq(thr[2] + step, limit + step, step)
my.at <- c(lp,mp,up)
my.col.regions <- c(rep("green", length(lp)), colorFun(length(mp)), rep("blue",
length(up)) )
levelplot(my.mat, at = my.at, col.regions = my.col.regions)
Antje schrieb:
> Hi there,
>
> I'd like to create a heatmap from my matrix with
> a) a defined color range (lets say from yellow to red)
> b) using striking colors above and below a certain threshold (above =
> "green", below = "blue")
>
> Example matrix (there should be a few outliers generated...) + simple
> levelplot without outliers marked:
>
> library(lattice)
> my.mat <- matrix(rnorm(800), nrow = 40)
> threshold <- c(-1,1) # should be used for the extreme colors
> colorFun <- colorRampPalette(c("yellow","red"))
> levelplot(my.mat, col.regions = colorFun(50))
>
>
> I don't know how to handle the extrem values...
>
> Can anybody help?
>
> Antje
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
More information about the R-help
mailing list