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

Reply via email to