# In The Armchair

## Math in R plots

Posted in Computers by Armchair Guy on April 5, 2011

R provides a way (see ?mathplot) to insert math into titles and labels in plots.  An example: plot(1, main=expression(S[A])).  This will create an S with a subscript A ($S_A$) in the title of the plot.

But what if you have a variable called x, and you want $S_A$ and the value of x in the title?  For example, if the value of x is 3, you want $S_A = 3$ to appear.

I’m sure there’s a simpler solution, but here’s the simplest one I’ve got:

1. First, note that it would suffice to type in plot(1, main = expression(paste(S[A], ” = “, 3))).  Of course, we want the value of x there, no matter what it is — not just 3.  If we try plot(1, main = expression(paste(S[A], ” = “, x))), that will result in $S_A = x$ appearing in the title, not what we want.
2. The solution is to create the string we would have typed if we knew the value of x.  We do this like this: s <- paste(“plot(1, main = expression(paste(S[A], \” = \”, “, x, “)))”). If we now print the string s, it will show “plot(1, main = expression(paste(S[A], \” = \”,  3 )))” (if the value of x is 3).
3. Now, we “run the string”: eval(parse(text = s)).

There are some more complicated but flexible solutions, like integrating postscript output from latex into R graphs (using psfrag).