Marius Hofert
2011-Jun-02 18:43 UTC
[R] plotmath: paste string and expression [from a vector of expressions]
Dear all,
I have a vector of expressions and would like to "paste" some string
to it before using it in a plot:
vars <- vector("expression", 2)
vars[1] <- expression(alpha)
vars[2] <- expression(beta)
plot(0, 0, main=substitute(bold("Foo" ~~ VAR), list(VAR=vars[2]) ))
Although I tried hard, I just can't figure out how to solve this. The title
should be "Foo <theta>", where <theta> is the greek
letter. I tried some constructions with bquote but that wasn't successful...
I also looked in the mailing list but couldn't find anything helpful [I am
sure I overlooked something].
Cheers,
Marius
Uwe Ligges
2011-Jun-02 20:14 UTC
[R] plotmath: paste string and expression [from a vector of expressions]
On 02.06.2011 20:43, Marius Hofert wrote:> Dear all, > > I have a vector of expressions and would like to "paste" some string to it before using it in a plot: > > vars<- vector("expression", 2) > vars[1]<- expression(alpha) > vars[2]<- expression(beta) > plot(0, 0, main=substitute(bold("Foo" ~~ VAR), list(VAR=vars[2]) )) > > Although I tried hard, I just can't figure out how to solve this. The title should be "Foo<theta>", where<theta> is the greek letter. I tried some constructions with bquote but that wasn't successful... I also looked in the mailing list but couldn't find anything helpful [I am sure I overlooked something].plot(0, 0, main=expression("Foo" ~~ theta)) Uwe Ligges> Cheers, > > Marius > > ______________________________________________ > R-help at 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.
Dennis Murphy
2011-Jun-02 20:23 UTC
[R] plotmath: paste string and expression [from a vector of expressions]
Hi:
This seems to work:
vars2 <- c(quote(alpha), quote(beta)) # returns a list of mode call
plot(0, 0, main = bquote(bold('Foo '~.(vars2[[2]]))))
Expressions are only evaluated once, which means that inner
expressions are not evaluated. You need a call object rather than an
expression inside of bquote().
HTH,
Dennis
On Thu, Jun 2, 2011 at 11:43 AM, Marius Hofert <m_hofert at web.de>
wrote:> Dear all,
>
> I have a vector of expressions and would like to "paste" some
string to it before using it in a plot:
>
> vars <- vector("expression", 2)
> vars[1] <- expression(alpha)
> vars[2] <- expression(beta)
> plot(0, 0, main=substitute(bold("Foo" ~~ VAR), list(VAR=vars[2])
))
>
> Although I tried hard, I just can't figure out how to solve this. The
title should be "Foo <theta>", where <theta> is the greek
letter. I tried some constructions with bquote but that wasn't successful...
I also looked in the mailing list but couldn't find anything helpful [I am
sure I overlooked something].
>
> Cheers,
>
> Marius
>
> ______________________________________________
> R-help at 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.
>
Apparently Analagous Threads
- lattice + plotmath: how to get a variable in bold face?
- how to make plotmath expression work together with paste
- splom, plotmath: how to add three lines of information with alignment?
- How to use expression(italic()) in a "vectorized" way (within a function)?
- Expressions from boxplot() passed to bxp()