McClatchie, Sam (PIRSA-SARDI)
2005-Mar-15 04:14 UTC
[R] trellis/ panel.superpose/ passing in superscripts/ groups
Background: OS: Linux Mandrake 10.1 release: R 2.0.0 editor: GNU Emacs 21.3.2 front-end: ESS 5.2.3 --------------------------------- Colleagues I'm plotting fish egg densities in temperature-salinity space (i.e. mean temperature ~ mean salinity | fish egg densities) for two survey years. The bivariate plot is overlaid on a temperature ~ salinity plot (not means) showing the distribution of water masses, so I can see the association of the eggs with water masses. It is all working, but I have had to replace a call to panel.superpose with panel.xyplot to plot the two years with different symbols. The problem may be related to one raised by Volker Franz <http://maths.newcastle.edu.au/~rking/R/devel/02b/0993.html> that was reported to be fixed. On the other hand, I may just be using panel.superpose incorrectly. You can see that I've messed around with the groups variable to try and get it working. My code is as follows. "sardine.egg.T.S.space.2001.and.2002.exp" <- function() { library(lattice) # trellis.device(postscript, # file="../figures/sardine.egg.T.S.space.2001.and.2002.ps", # horizontal=FALSE, color=TRUE) year <- as.factor(rep(2001, dim(mn.ts.e.2001)[1])) year.2001 <- cbind(mn.ts.e.2001,year) year <- as.factor(rep(2002, dim(mn.ts.e.2002)[1])) year.2002 <- cbind(mn.ts.e.2002,year) mn.ts.e.both <- rbind(year.2001, year.2002) #browser() ###trellis plot ##int <- matrix(c(0,5,6,10,11,20,21,40,41,80,81,160), ncol=2, byrow=TRUE) int <- matrix(c(0,2,3,4,5,8,9,16,17,32,33,64), ncol=2, byrow=TRUE) egg.counts <- shingle(mn.ts.e.both$eggs2.Pilch.Eggs, intervals = int) larvae.counts <- shingle(mn.ts.e.both$eggs2.Pilch.Larv, intervals = int) out1 <- xyplot(mn.t ~ mn.s | egg.counts, data = mn.ts.e.both, #groups = year, xlim = c(35,38), ylim = c(12,24), xlab = "mean salinity", ylab = "mean temperature (deg. C)", main = "2001 and 2002 egg densities in Temperature-Salinity space", aspect = "xy", jitter = T, layout = c(1,6), auto.key=TRUE, panel = function(x, y, subscripts = c(2,3)){ panel.xyplot(data.2001$Salinity, data.2001$Temperature.oC, pch=".", col="yellow") panel.xyplot(data.2002$Salinity, data.2002$Temperature.oC, pch=".", col="orange") panel.text(37.8, 15, "Upwelling") panel.text(37.8, 17.5, "Warm pool") panel.text(37.8, 19.75, "Shelf break") panel.text(37.8, 21.5, "Spencer Gulf") panel.abline(h = c(16,19,20.5), v = 36.5, col="red", lty=2) ## panel.superpose(x,y, ## subscripts=c(2,3), ## groups = mn.ts.e.both$year, ## cex=0.5) ##auto.key = T panel.xyplot(year.2001$mn.s, year.2001$mn.t, col="cyan") panel.xyplot(year.2002$mn.s, year.2002$mn.t, col="purple") } ) print(out1) # graphics.off() } Any suggestions regarding how to get panel.superpose working would be gratefully received. Sorry I cannot provide the data so the code is easily used. Data are a bit large to paste into an email. Sam ---- Sam McClatchie, Biological oceanography South Australian Aquatic Sciences Centre PO Box 120, Henley Beach 5022 Adelaide, South Australia email <mcclatchie.sam at saugov.sa.gov.au> Telephone: (61-8) 8207 5448 FAX: (61-8) 8200 2481 Research home page <http://www.members.iinet.net.au/~s.mcclatchie/> /\ ...>><xX(?> //// \\\\ <?)Xx><< ///// \\\\\\ ><(((?> >><(((?> ...>><xX(?>O<?)Xx><<