On Sat, 2 Aug 2008, Bryan Hanson wrote:

Thanks Gavin, that nicely solved one problem.  On a fresh look at the
archives, I see my other problem was trying to paste expressions, a bad
idea.  So, I'm writing each line separately.  All problems are fixed!

You want a single expression containing an unevaluated call to paste. E.g.

xx <- expression(paste(phantom()^35 * Cl, ": 75%"))

I don't think trying to produce multi-line output from a single plotmath expression is a good idea (as it does not align on baselines).

By the way, I discovered from the archives that to get a % in the final
output, you have to quote it in the expression: "%" which I suppose is a
general feature.  I may have missed it, but that behavior doesn't seem to be
mentioned in the plotmath help page - perhaps it's too obvious?

% is not a valid character in a syntactic name, so you have to quote it (by ' " or `) to get it past the parser. That the expression has to syntactically valid in R is also why you need something before '^': {} will do as in

xx <- expression(paste({}^35 * Cl, `: 75%`))

The problem is parsing, nothing to do with plotmath (and hence one would not expect the details to be under ?plotmath).



Thanks, Bryan


On 8/2/08 2:19 PM, "Gavin Simpson" <[EMAIL PROTECTED]> wrote:

On Fri, 2008-08-01 at 17:23 -0400, Bryan Hanson wrote:
Hi all... I¹m making a chart dealing with frequencies of isotopes of various
elements.  For instance, I'd like the following text to appear on a chart
with the "35" and "37" as superscripts:

Based upon:
35Cl: 75%
37Cl: 25%

I am having problems properly parsing the superscript that preceeds the
"Cl", since there is no character ahead of the superscript (I saw examples
in the archives where there was a preceeding character).  Also, the
construction of the string seems to not be working as I expect either.  So,
I think there are two problems here.  Here is a sample of what doesn't quite
work:

expression(phantom()^{35}*Cl[1])

works if I understand what you want. phantom() is documented
on ?plotmath (?phantom is an alias for this help page also) and allows
you to leave space as though argument was there, but I use it here with
no object so no space left but this has the side effect of allowing the
superscript for this "space".

Note that you need to wrap multiple character superscripts in {} ([] for
subscripts). Also, you need to produce a valid expression so the *
achieves this between the two components (the phantom()^{35} and the
Cl[1] bits). You could also achieve the same result by pasting the bits
together:

expression(paste(phantom()^{35}, Cl[1]))

but the former seems more familiar and intuitive to me now after
grappling with plotmath for a while.

G


Cl1 <- rbinom(1000, size = 1, prob = 0.25)
pCl1 <- histogram(Cl1, main = expression(Cl[1]), xlab = "", ylab = "",
scales = list(draw = FALSE), ylim = c(0:80))
plot(pCl1)
# This works fine but doesn't have everything I want:
leg.txt1 <- paste("Based upon:\n", ": 75%\n", ": 25%", sep = "")
grid.text(leg.txt1, 0.5, 0.5)
# This paste doesn't work due to the expression statements:
leg.txt2 <- paste("Based upon:\n", expression(^35*Cl), ": 75%\n",
expression(^37*Cl), ": 25%", sep = "")
# This doesnt' produce an error, but doesn't produce what is wanted either,
# as the expression is taken (almost) literally:
leg.txt3 <- paste("Based upon:\n", expression(""^35*Cl), ": 75%\n",
expression(""^37*Cl), ": 25%", sep = "")
grid.text(leg.txt3, 0.5, 0.3)

From watching the help list, I know parsing things can be tricky.

TIA, Bryan

sessionInfo()
R version 2.7.1 (2008-06-23)
i386-apple-darwin8.10.1

locale:
en_US.UTF-8/en_US.UTF-8/C/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] datasets  grid      grDevices graphics  stats     utils     methods
[8] base

other attached packages:
 [1] fastICA_1.1-9         DescribeDisplay_0.1.3 ggplot_0.4.2
 [4] RColorBrewer_1.0-2    reshape_0.8.0         MASS_7.2-42
 [7] pcaPP_1.5             mvtnorm_0.9-0         hints_1.0.1-1
[10] mvoutlier_1.3         robustbase_0.2-8      lattice_0.17-8
[13] rggobi_2.1.9          RGtk2_2.12.5-3

______________________________________________
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.


______________________________________________
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.


--
Brian D. Ripley,                  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595
______________________________________________
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