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