I have the following data as input, from which I would like to make a lattice levelplot:
----------------- x y level 1 m3134 m3134 1.0000000 2 m3134 m416B 0.4189057 3 m416B m3134 0.2696508 4 m3134 mA20 0.3322170 5 mA20 m3134 0.2454191 6 m3134 mB 0.3176792 ... ----------------- I transform the levels as follows, so that levels are in the range [0,100]: ----------------- x y level 1 m3134 m3134 100 2 m3134 m416B 42 3 m416B m3134 27 4 m3134 mA20 33 5 mA20 m3134 25 6 m3134 mB 32 ... ----------------- I want to create a custom color palette with the following groups, based on the levels in my input data frame mostly being between 10 and 80: level range -- color ----------------- [0,10) -- white [10, 11) -- white [11, 12) -- a mix of mostly white and a little red ... [78,79) -- a mix of mostly red and a little white [79,80) -- red [80, Inf) -- black In other words, I want to color any cell with the level of 100 (or greater than 80) with black, and any cell with a level between 0 and 80 with a color between white and red. Here is my code: ----------------- #! /foo/bar/bin/Rscript --vanilla args <- commandArgs(TRUE) dfFn <- args[1] pdfFn <- args[2] df <- read.table(dfFn, col.names=c("x", "y", "level")) df$level <- round(df$level*100, 0) col.seq <- seq(10, 79, 1) cuts <- cut(df$level, breaks = c(0, 1, seq(10, 79, 1), 80, Inf)) colors <- colorRampPalette(c('white', 'red'))(length(col.seq)+1) levels(colors) <- c("white", cuts, "black") library(lattice) trellis.device(dev=pdf, file=pdfFn) fig <- levelplot(level~x*y, data=df, col.regions=colors ) print(fig) graphics.off(); ----------------- This makes a levelplot, but the coloring is incorrect. The cells in the figure are colored from white to red, for levels between 0 and 100, instead of between levels 10 and 79. The cells containing a level of 100 are painted red, instead of black. I also get the following warning, which comes from the levels(colors) statement: ----------------- Warning message: In `levels<-`(`*tmp*`, value = c("white", "63", "24", "9", "15", : duplicated levels will not be allowed in factors anymore ----------------- What am I doing wrong with the cut() and color palette generation steps (and how can I fix them) in order to make the levelplot with correct cell coloring? Thanks for any constructive advice. Regards, Alex ______________________________________________ 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.