On 2011-02-25 15:57, Marius Hofert wrote:
Dear expeRts,

I would like to use LaTeX-like symbols in keys via plotmath. Below is a minimal
example. I get:
Error in fun(key = list(x = 0.5, y = 0.8, text = 
list(list(expression(paste("(",  :
   first component of text must be vector of labels
What's wrong? How can I create the required vector (of expressions)?

Cheers,

Marius

library(lattice)
val<- matrix(1, nrow = 10, ncol = 3)
nplot<- 10

labs<- sapply(1:3, function(i) substitute(expression(paste("(",i,"), 
",l==len,"mm",sep="")), list(len=2*i)))
myplot<- xyplot(0~0,
                  panel=function(...){
                      for(i in 1:3){
                          panel.xyplot(1,val[,i],type="l")
                          
panel.text(2,val[nplot,i],label=paste("(",i,")",sep=""))
                      }
                  },
                  key = list(x=0.5,y=0.8,text=list(labs),
                  align=TRUE,transparent=TRUE))
myplot

Try this:

  labs <- vector("expression", 3)
  for(i in 1:3) labs[i] <-
     substitute(expression(
                  group("(", k, ")") * "," ~~ l == len ~ italic("mm")
               ),
               list(len = 2*i, k=i)
     )[2]

The idea is to create an expression vector and then
fill its components appropriately. We need the second
component of the substitute call.
(I put in the 'italic' just for fun.)

Maybe there's a better way, but I don't know it.

Peter Ehlers

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to