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.