Hi again, Deepayan, I tried adding a "pch = c(1,2,3,4,5)" line in the auto key but the "zero-length 'pch'" error still occurs.
Sundar, I tried your code using key instead of auto.key, and after tweaking it to fit my design (i.e. from "x~y, groups = a" to "x~y | a, groups = b") it works perfectly! Thanks! Here's the code that finally worked (that is, the modifications to Sundar's code, which might be clearer for others to follow than my own): library(lattice) set.seed(1) z <- expand.grid(x=1:10, b = LETTERS[1:5], a = LETTERS[10:18]) z$y <- rnorm(nrow(z)) trellis.par.set(theme = col.whitebg()) par.line <- trellis.par.get("superpose.line") par.symb <- trellis.par.get("superpose.symbol") n <- seq(nlevels(z$b)) my.key <- list( space = "right", border = TRUE, cex.title = 1.2, title = "My Key", size = 7, lines = list( pch = par.symb$pch[n], lty = par.line$lty[n], col = par.line$col[n], type = "b" ), text = list( levels(z$b) ) ) xyplot( y ~ x | a, data = z, groups = b, pch = par.symb$pch[n], type = "b", key = my.key ) Quoting Sundar Dorai-Raj <[EMAIL PROTECTED]>: > Hi, Mike, > > Mike Lawrence wrote: >> Hi Deepayan, >> >> Thanks for the reply, but when I enter the " type = "b" " code into >> the auto.key >> (see below) command I get the following message: >> >> Error in valid.pch(x$pch) : zero-length 'pch' >> >> Any suggestions? >> > > Why not just ignore auto.key and use key? Personally, I use auto.key > only when I want the defaults. If I want something more customized, > then I use key. As in, > > library(lattice) > set.seed(1) > z <- expand.grid(x=1:10, g = LETTERS[1:5]) > z$y <- rnorm(nrow(z)) > trellis.par.set(theme = col.whitebg()) > par.line <- trellis.par.get("superpose.line") > par.symb <- trellis.par.get("superpose.symbol") > n <- seq(nlevels(z$g)) > my.key <- list(space = "right", > border = TRUE, > cex.title = 1.2, > title = "My Key", > size = 7, > lines = list(pch = par.symb$pch[n], > lty = par.line$lty[n], > col = par.line$col[n], > type = "b"), > text = list(levels(z$g))) > xyplot(y ~ x, z, groups = g, > pch = par.symb$pch[n], type = "b", > key = my.key) > >> xyplot( >> #basic settings >> bias ~ sample_size | measure, >> data = bias, >> groups = exp_tau, >> type = "b", >> pch = c(1,2,3,4,5), >> xlab = "Sample Size", >> ylab = "Bias (ms)", >> #make strips transparent >> strip = function(bg, ...) strip.default(bg = 'transparent', ...), >> # tweak scales >> scales=list( >> x=list( >> at = c(20, 40, 60), >> tck = c(1,0), >> alternating = F >> ), >> y=list( >> at = c(-50, -25, 0, 25, 50), >> tck = c(1,0), >> alternating = F >> ) >> ), >> # tell key to match symbols to those used in the plot >> par.settings = list( >> superpose.symbol = list( >> cex = .8, >> pch = c(1,2,3,4,5) >> ) >> ), >> # key settings >> auto.key = list ( >> type = "b", >> lines = T, >> border = T, >> cex.title = 1.2, >> title = "Expected Tau", >> text = c("30 ms", "80 ms", "130 ms", "180 ms", "230 ms"), >> space = "right" >> ) >> ) >> >> >> Quoting Deepayan Sarkar <[EMAIL PROTECTED]>: >> >> >>> On 7/30/05, Mike Lawrence <[EMAIL PROTECTED]> wrote: >>> >>>> Quick correction: >>>> >>>> The lines "lines = T," & "type = "b"" in the "par.settings" section should >>>> not >>>> be there. They are remnants of my previous (failed) attempts at >>>> solving the >>>> problem. Below is the correct code: >>>> >>>> xyplot( >>>> #basic settings >>>> bias ~ sample_size | measure, >>>> data = bias, >>>> groups = exp_tau, >>>> type = "b", >>>> pch = c(1,2,3,4,5), >>>> #make strips transparent >>>> strip = function(bg, ...) strip.default(bg = 'transparent', ...), >>>> # tweak scales >>>> scales=list( >>>> x=list( >>>> at = c(20, 40, 60), >>>> tck = c(1,0), >>>> alternating = F >>>> ), >>>> y=list( >>>> at = c(-50, -25, 0, 25, 50), >>>> tck = c(1,0), >>>> alternating = F >>>> ) >>>> ), >>>> # tell key to match symbols to those used in the plot >>>> par.settings = list( >>>> superpose.symbol = list( >>>> cex = .8, >>>> pch = c(1,2,3,4,5) >>>> ) >>>> ), >>>> # key settings >>>> auto.key = list ( >>>> lines = T, >>>> size = 7, >>> >>> You seem to be missing a 'type="b"' somewhere here. The type="b" >>> argument to xyplot is actually handled by the panel function. The key >>> has type="l" by default (see under 'key' in ?xyplot) and has to be >>> changed explicitly. >>> >>> >>>> border = T, >>>> cex.title = 1.2, >>>> title = "Expected Tau", >>>> text = c("30 ms", "80 ms", "130 ms", "180 ms", "230 ms"), >>>> space = "right", >>>> ) >>>> ) >>>> >>>> >>>> >>>> Quoting Mike Lawrence <[EMAIL PROTECTED]>: >>>> >>>> >>>>> Hi all, >>>>> >>>>> I'm having a problem with the auto.key function in xyplot. I hate to >>>>> bother the >>>>> list like this and I'm positive I must be missing something very simple, >>>> >>>> yet >>>> >>>>> I've spent the last day searching for a solution to no avail. >>>>> >>>>> Essentially, I want a key that contains entries in which the plot points >>>> >>>> are >>>> >>>>> superimposed on a line of the same color as the points, like this: >>>> >>>> o--o--o >>>> >>>>> Now, given the presence of the default "divide" command, I assume this is >>>>> simple; indeed, I get the impression that this representation is >>>>> supposed to be >>>>> produced automatically. Yet I can't seem to get it to work! >>>>> >>>>> Now, I've incorporated various other tweaks to my xyplot function, so I'm >>>>> wondering if these tweaks are somehow hindering my efforts. The function >>>> >>>> is >>>> >>>>> pasted below; I am making a 3x3 plot, each panel contains 5 lines and it >>>> >>>> is >>>> >>>>> these lines that I want represented in the key. See the comments for >>>>> descriptions of the modifications. >>>>> >>>>> Any help would be greatly appreciated. >>>>> >>>>> Cheers, >>>>> >>>>> Mike >>>>> >>>>> >>>>> xyplot( >>>>> #basic settings >>>>> bias ~ sample_size | measure, >>>>> data = bias, >>>>> groups = exp_tau, >>>>> type = "b", >>>>> pch = c(1,2,3,4,5), >>>>> #make strips transparent >>>>> strip = function(bg, ...) strip.default(bg = 'transparent', ...), >>>>> # tweak scales >>>>> scales=list( >>>>> x=list( >>>>> at = c(20, 40, 60), >>>>> tck = c(1,0), >>>>> alternating = F >>>>> ), >>>>> y=list( >>>>> at = c(-50, -25, 0, 25, 50), >>>>> tck = c(1,0), >>>>> alternating = F >>>>> ) >>>>> ), >>>>> # tell key to match symbols to those used in the plot >>>>> par.settings = list( >>>>> superpose.symbol = list( >>>>> cex = .8, >>>>> pch = c(1,2,3,4,5) >>>>> ), >>>>> lines = T, >>>>> type = "b" >>>>> ), >>>>> # key settings >>>>> auto.key = list ( >>>>> lines = T, >>>>> size = 7, >>>>> border = T, >>>>> cex.title = 1.2, >>>>> title = "Expected Tau", >>>>> text = c("30 ms", "80 ms", "130 ms", "180 ms", "230 ms"), >>>>> space = "right", >>>>> ) >>>>> ) >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> Mike Lawrence, BA(Hons) >>>>> Research Assistant to Dr. Gail Eskes >>>>> Dalhousie University & QEII Health Sciences Centre (Psychiatry) >>>>> >>>>> [EMAIL PROTECTED] >>>>> >>>>> "The road to Wisdom? Well, it's plain and simple to express: >>>>> Err and err and err again, but less and less and less." >>>>> - Piet Hein >>>>> >>>>> ______________________________________________ >>>>> R-help@stat.math.ethz.ch mailing list >>>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>>> PLEASE do read the posting guide! >>>> >>>> http://www.R-project.org/posting-guide.html >>>> >>>> >>>> >>>> -- >>>> >>>> Mike Lawrence, BA(Hons) >>>> Research Assistant to Dr. Gail Eskes >>>> Dalhousie University & QEII Health Sciences Centre (Psychiatry) >>>> >>>> [EMAIL PROTECTED] >>>> >>>> "The road to Wisdom? Well, it's plain and simple to express: >>>> Err and err and err again, but less and less and less." >>>> - Piet Hein >>>> >>>> ______________________________________________ >>>> R-help@stat.math.ethz.ch mailing list >>>> https://stat.ethz.ch/mailman/listinfo/r-help >>>> PLEASE do read the posting guide! >>>> http://www.R-project.org/posting-guide.html >>>> >>> >> >> >> > -- Mike Lawrence, BA(Hons) Research Assistant to Dr. Gail Eskes Dalhousie University & QEII Health Sciences Centre (Psychiatry) [EMAIL PROTECTED] "The road to Wisdom? Well, it's plain and simple to express: Err and err and err again, but less and less and less." - Piet Hein ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html