[R] shorthand for plotmath-annotation in certain font
Daniel Sabanés Bové
daniel.sabanesbove at campus.lmu.de
Wed Aug 15 16:32:43 CEST 2007
Dear useRs,
I wanted to have a function that allows me to get the font.lab-font,
especially italic font,
in plotmath-annotation. Consulting the R-Help-list did not reveal a
solution,
but other requests, so I wrote a little function, which I would like to
share:
## code begin
math <- function (..., font = par ("font.lab"))
{
## unpack dot-dot-dot argument
dots <- as.list (substitute (...[]))
dots <- dots[2:(length (dots) - 1)]
## font extension
font <- switch (font, "plain", "bold", "italic", "bolditalic")
dots <- paste (font, "(", dots, ")")
## parse and build expression
do.call ("expression", as.list (parse (text = dots)))
}
## code end
Using this function, you can abbreviate the annotation work, a
small example:
## code begin
r <- rexp (100)
theta <- runif (100, 0, 2*pi)
group <- sample (1:4, 100, replace = TRUE)
par (font.lab = 4)
plot (r * cos (theta), r * sin (theta),
xlab = math (r %*% cos (theta)), ylab = math (r %*% sin (theta)),
pch = group)
legend ("topleft", title = "group",
legend = math (15 * alpha, 37 * beta, gamma + v[1], delta %/% d),
pch = 1:4)
## code end
Note that cos and sin are no "built-in" functions that plotmath can
recognize,
they are thus bolditalic as well. Using font = 3 meaning "italic" and
using the
Computer Math Symbol Adobe-Symbol-encoded fonts (cmsyase) developed by
Paul Murrell
(see http://www.stat.auckland.ac.nz/~paul/R/CM/CMR.html), you can produce
annotation that resembles that of the gold-standard LaTeX quite well.
regards,
Daniel - who is not subscribed to the list, please send direct answers
to my email address as well
as to the list, thank you.
More information about the R-help
mailing list