Hi Uwe,
thanks a lot for your answer! And thanks a lot to all others helping me with
this issue!
Uwe Ligges schrieb:
Antje wrote:
Hi Uwe,
I tried to explain my problem with the given example.
I don't see any documentation which tells me that the length of
"col.regions" should be one less than "at". (At least I assume now
that it should be this way...)
If it's equal or longer some colors (in the middle of the
color-vector) are simply not used.
Just try the example below with rainbow(5) and rainbow(6) and compare
the results... both plot will use 5 colors!
Sorry, but this behaviour is not really self-explaining to me... maybe
I'm to blind to find the documentation which says that only one color
less will ensure the usage of all colors.
Well, of you have 5 at locations (i.e. breaks), then you have 4
intervals in between and that's the amount of colors that is sensible.
From the documentation this was not really clear to me (though it makes sense,
I agree)
(It is so important for me because I need to display a heatmap with
colors let's say
* all lower data outliers "green",
* all higher data outliers "blue" and
* everything else within the color range "yellow" to "red".
I've seen that some values do not get blue or green though they are
outliers...
I've attached one graph, I've generated - maybe it helps to understand)
Any wrong assumption?
Maybe:
Say you want everything below -1 be considered as a lower outlier and
all above 1 is a higher outlier, then you can say:
levelplot(matrix(c(1,2,0,-2), nrow=2),
at = c(-Inf, seq(-1, 1, length=10), Inf),
col.regions = c(rgb(0,1,0),
hcl(seq(20, 80, length=10), c=400),
rgb(0,0,1)))
Then below -1 is green (rgb(0,1,0)), above 1 is blue (rgb(0,0,1)) and in
between we have 10 regions from -1 to 1 each with a color between some
kind of yellow and red in hcl() space.
Thank you for this little example. Just two comments:
1) I was not aware of the possibility to use "Inf" - it just has the
disadvantage that these colors are not displayed at the color vector (maybe
this can be adjusted somehow)
2) if you replace one number of the matrix with -1, it will be displayed green.
So it would be considered as an outlier. From the documentation it was also not
clear to me that the lower endpoint of the interval is always excluded (except
for the very first value of the at-vector), while the upper endpoint will be
included. (This also makes sense but in this case I have to slightly modify my
data because I'd like to include both endpoints of my non-outlier-range...)
Anyway, I guess, I solved all problems and found a workable solution :-)
Ciao,
Antje
Uwe Ligges
Ciao,
Antje
Uwe Ligges schrieb:
Antje wrote:
Hi there,
as I'm not sure to understand the coloring levelplot uses, I'm
looking for another easy way to create a heatmap like this:
library(lattice)
mat <- matrix(seq(1,5, length.out = 12), nrow = 3)
mat[1,2] <- 3.5
my.at <- seq(0.5,5.5, length.out = 6)
my.col.regions <- rainbow(5)
graph <- levelplot(t(mat[nrow(mat):1, ] ), at = my.at, col.regions =
my.col.regions)
print(graph)
Can anybody help me with some hints or little examples?
Dear Antje,
since you are asking the same question again now, maybe you can
explain what you are going to get? In fact, I do not undertsand where
your problem is. R places the colors according to the values in your
matrix very well including the legend and I thought up to today that
the plot is self explaining.
Best wishes,
Uwe Ligges
Antje
______________________________________________
R-help@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.
______________________________________________
R-help@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.