[R] xyplot auto.key issue

Sundar Dorai-Raj sundar.dorai-raj at pdf.com
Sun Jul 31 12:19:08 CEST 2005


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 <deepayan.sarkar at gmail.com>:
> 
> 
>>On 7/30/05, Mike Lawrence <Mike.Lawrence at dal.ca> 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 <Mike.Lawrence at dal.ca>:
>>>
>>>
>>>>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)
>>>>
>>>>Mike.Lawrence at Dal.Ca
>>>>
>>>>"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 at 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)
>>>
>>>Mike.Lawrence at Dal.Ca
>>>
>>>"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 at 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
>>>
>>
> 
> 
>




More information about the R-help mailing list