On Mon, 25 Nov 2013, C. Alina Cansler wrote:
Don,
This looks helpful:
https://stat.ethz.ch/pipermail/r-help/2011-March/272361.html
Also, here is some code that I had, and tried to make applicable to your
question:
div.colors <-colorRampPalette(c("blue", "white", "red" ))
x<-seq(-1,12,1);x
palette(div.colors(length(x)))
y<- rep(1,length(x))
barplot(y, col=x+2, space=0, axes=FALSE, border = NA , cex.names=1.3 ,
xlab="", ylab="",xaxt="n")
These colors are not very well balanced because "blue" is much darker than
"red". You can see that more clearly when you desaturate the colors where
the blue branch corresponds to darker colors than the red branch.
The palettes in RColorBrewer or colorspace offer better balanced palettes.
Consider the code below.
And as for the original question: diverge_hcl(99) would be one option to
obtain 99 divergent colors in "colorspace".
library("colorspace")
pal <- function(col, border = "light gray") {
n <- length(col)
plot(0, 0, type="n", xlim = c(0, 1), ylim = c(0, 1),
axes = FALSE, xlab = "", ylab = "")
rect(0:(n-1)/n, 0, 1:n/n, 1, col = col, border = border)
}
par(mfrow = c(2, 2), mar = rep(1, 4))
pal(div.colors(9))
pal(diverge_hcl(9))
pal(desaturate(div.colors(9)))
pal(desaturate(diverge_hcl(9)))
-Alina
On Mon, Nov 25, 2013 at 4:27 PM, Don McKenzie <d...@u.washington.edu> wrote:
Bert or anyone else familiar with RColorBrewer:
Has anyone tried to accomplish with RColorBrewer what I asked about in my
original post (below)?
Here is an example cribbed from the levelplot() help examples
x <- seq(pi/4, 5 * pi, length.out = 100)
y <- seq(pi/4, 5 * pi, length.out = 100)
r <- as.vector(sqrt(outer(x^2, y^2, "+")))
grid <- expand.grid(x=x, y=y)
grid$z <- cos(r^2) * exp(-r/(pi^3))
# now use RColorBrewer to get a palette
library("RColorBrewer?)
levelplot(z~x*y, grid,col.regions=brewer.pal(6,"BrBG?)) # the numeric
argument to brewer.pal is the number of colors used ? I tried several
This gives me a nice brown-to-green gradient but does not (AFAICS) give me
control over where the center of the divergence lies. Even in this
symmetrical
example, I can?t get it to be at zero ? it repeats on either side of zero.
thanks to anyone who pages through all this and makes a suggestion, even
if it doesn?t work. :-)
On Nov 22, 2013, at 10:25 PM, Bert Gunter <gunter.ber...@gene.com> wrote:
Use the Rcolorbrewer package.
-- Bert
On Fri, Nov 22, 2013 at 8:43 PM, Don McKenzie <d...@u.washington.edu>
wrote:
I would like to produce a levelplot with divergent colors such that
increasingly negative values of Z get darker in the first color and
increasingly
positive values get darker in the second color. this is common in
cartography. I have tried tinkering with the col.regions argument but the
best I can do
is to get the split in the middle of my range of Z, but in my
particular case range(Z) is (-1,12).
I am using R 3.0.2 on OSX 10.9
Here is an example
x <- y <- c(1:25)
grid <- expand.grid(x=x,y=y)
grid$z <- sort(runif(625,min=-1,max=12))
levelplot(z ~ x*y,grid) # produces the default pink and blue but the
split is at ~5.5
# do something clever here
# e.g., my.colors <- <create a palette that splits at zero>
levelplot(z ~ x*y,grid,col.regions=my.colors) # so there should be
some light pink at the bottom and the rest increasingly intense blue
Ideas appreciated. Thanks in advance.
Bert Gunter
Genentech Nonclinical Biostatistics
(650) 467-7374
Don McKenzie
Research Ecologist
Pacific Wildland Fire Science Lab
US Forest Service
Affiliate Professor
School of Environmental and Forest Sciences
University of Washington
d...@uw.edu
--
C. Alina Cansler
Fire and Mountain Ecology Lab
School of Environmental and Forest Sciences
College of the Environment
University of Washington
E-mail: acans...@uw.edu
Cell: 206-794-1630
[[alternative HTML version deleted]]
______________________________________________
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.