multiple bquote items in legend of an R plot multiple bquote items in legend of an R plot r r

multiple bquote items in legend of an R plot


In this case, plotmath is not able to coerce the list of calls to expressions.

> cs <- c(bquote(theta == .(a)),bquote(theta == .(a)))> cs[[1]]theta == 123[[2]]theta == 123> sapply(cs, class)[1] "call" "call"

You can make this work if you coerce to expressions yourself:

> c(as.expression(bquote(theta == .(a))), as.expression(bquote(theta == .(a))))expression(theta == 123, theta == 123)> plot(1,1)> legend('bottomleft',legend= c(as.expression(bquote(theta == .(a))), +                               as.expression(bquote(theta == .(a)))))

Another way is to coerce the original list of calls to expressions using sapply:

plot(1,1)legend("bottomleft",        sapply(c(bquote(theta == .(a)), bquote(theta == .(a))), as.expression))


To coerce the original list of calls to expressions it is not necessary to use sapply(). It suffices to use as.expression() only for one of the components within the c() construct:

plot(1,1)legend("bottomleft",        c(as.expression(bquote(theta == .(a))), bquote(theta == .(a))))

c() will then automatically coerce the whole list, to the expression class.