gordon.morrison at hsbcib.com
2010-Aug-06 15:13 UTC
[R] Colours on conditional levelplots in package "lattice"
I am having difficulty in getting the colours on a conditional levelplot in the package lattice to work as I want them to - I wonder if someone could help me. The colours do not completely agree with the colour key. Here is a specimen example. require(lattice) col1 <- c (1.37,2.35,0.20,1.85,0.274,1.56,-0.76,-0.03,-1.39,-0.95,-0.50,0.91,1.58,0.17,-0.34,-0.48,1.50,-0.68,1.05) col2 <- c ("A","B","C","F","G","H","B","C","E","G","H","A","B","C","D","E","F","G","H") col3 <- c ("X","Y","X","Y","X","Y","Y","X","X","X","Y","X","Y","X","Y","X","Y","X","Y") col4 <- c ("1","1","1","1","1","1","2","2","2","2","2","3","3","3","3","3","3","3","3") dat1 <- data.frame(X1=col1, var1=col2, var2=col3, var3=col4) maxAbsValue <- max(abs(as.vector(dat1[, "X1"]))) colorkeyAt <- pretty(c(-maxAbsValue, maxAbsValue), n = 10) boxColours <- c("#8B0000", "#A83500", "#C46B00", "#E2A100", "#FFD700", "#ADD8E6", "#81A2CF", "#566CB8", "#2B36A1", "#00008B") levelplot(X1 ~ var1 * var2 | var3, data = dat1, col.regions = boxColours, colorkey = list(at = colorkeyAt, labels = list(labels = colorkeyAt, at = colorkeyAt, cex 0.6)), panel = function(x, y, z, ...) { panel.fill(col = "darkgrey") at = pretty(c(-maxAbsValue, maxAbsValue), n = 10) panel.levelplot(x, y, z, ...) }) I am hoping that all the "blue" shades appear in panel 1, the reds in panel 2 and a mixture only in panel 3. Can anyone help explain why this is not happening? I am using> sessionInfo()R version 2.11.1 (2010-05-31) i386-pc-mingw32 locale: [1] LC_COLLATE=English_United Kingdom.1252 LC_CTYPE=English_United Kingdom.1252 [3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C [5] LC_TIME=English_United Kingdom.1252 attached base packages: [1] grid grDevices datasets splines graphics stats tcltk utils methods base other attached packages: [1] RColorBrewer_1.0-2 lattice_0.18-8 rcom_2.2-3 rscproxy_1.3-1 svSocket_0.9-48 [6] TinnR_1.0.3 R2HTML_2.1 Hmisc_3.8-2 survival_2.35-8 loaded via a namespace (and not attached): [1] cluster_1.12.3 svMisc_0.9-57 tools_2.11.1 Windows XP Professional Regards Gordon Morrison ************************************************************ HSBC Bank plc may be solicited in the course of its placement efforts for a new issue, by investment clients of the firm for whom the Bank as a firm already provides other services. It may equally decide to allocate to its own proprietary book or with an associate of HSBC Group. This represents a potential conflict of interest. HSBC Bank plc has internal arrangements designed to ensure that the firm would give unbiased and full advice to the corporate finance client about the valuation and pricing of the offering as well as internal systems, controls and procedures to identify and manage conflicts of interest. HSBC Bank plc Registered Office: 8 Canada Square, London E14 5HQ, United Kingdom Registered in England - Number 14259 Authorised and regulated by the Financial Services Authority. ************************************************************ ----------------------------------------- SAVE PAPER - THINK BEFORE YOU PRINT! This transmission has been issued by a member of the HSBC Group "HSBC" for the information of the addressee only and should not be reproduced and/or distributed to any other person. Each page attached hereto must be read in conjunction with any disclaimer which forms part of it. Unless otherwise stated, this transmission is neither an offer nor the solicitation of an offer to sell or purchase any investment. Its contents are based on information obtained from sources believed to be reliable but HSBC makes no representation and accepts no responsibility or liability as to its completeness or accuracy.
Dieter Menne
2010-Aug-07 17:14 UTC
[R] Colours on conditional levelplots in package "lattice"
gordon.morrison wrote:> > I am having difficulty in getting the colours on a conditional levelplot > in > the package lattice to work as I want them to - I wonder if someone could > help me. >I did not understand exactly what you wanted because the example was a bit complext, but the following comes closer to your requests: require(lattice) #col1 <- c(1.37,2.35,0.20,1.85,0.274,1.56,-0.76,-0.03,-1.39,-0.95,-0.50,0.91,1.58,0.17,-0.34,-0.48,1.50,-0.68,1.05) col2 <- c("A","B","C","F","G","H","B","C","E","G","H","A","B","C","D","E","F","G","H") col3 <- c("X","Y","X","Y","X","Y","Y","X","X","X","Y","X","Y","X","Y","X","Y","X","Y") col4 <- c("1","1","1","1","1","1","2","2","2","2","2","3","3","3","3","3","3","3","3") dat1 <- data.frame(X1=col1, var1=col2, var2=col3, var3=col4) dat1$X1 = 1:nrow(dat1)-nrow(dat1)/2 maxAbsValue <- max(abs(as.vector(dat1[, "X1"]))) colorkeyAt <- pretty(c(-maxAbsValue, maxAbsValue), n = 10) boxColours <- c("#8B0000", "#A83500", "#C46B00", "#E2A100", "#FFD700", "#ADD8E6", "#81A2CF", "#566CB8", "#2B36A1", "#00008B") levelplot(X1 ~ var1 * var2 | var3, data = dat1, col.regions = boxColours, colorkey = list(at = colorkeyAt, labels = list(labels = colorkeyAt, at = colorkeyAt, cex =0.6)), at = pretty(c(-maxAbsValue, maxAbsValue), n = 10), panel = function(x, y, z, ...) { panel.fill(col = "darkgrey") panel.levelplot(x, y, z,...) }) -- View this message in context: http://r.789695.n4.nabble.com/Colours-on-conditional-levelplots-in-package-lattice-tp2316446p2317330.html Sent from the R help mailing list archive at Nabble.com.