Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Plotting axis labels with Greek symbols from a vector

I am struggling trying to plot Greek symbols as axis labels. Due to for looping several plots with different scales, I would like to use a vector that contains the symbol name instead of using the symbol name within expression(), which works fine:

x <- rnorm(10, 5,6)
y <- rnorm(10, 2,1)
xlab <- expression(paste(mu, "mol/mol"))
plot(x,y, xlab = xlab)

For some reason, I can't replace "mu" with a vector containing the symbol name:

k <- "mu"
xlab <- expression(paste(get(k), "mol/mol"))
plot(x,y, xlab = xlab)

I found a similar question, but what worked for functions does not seem to work for Greek symbols:

ylab <- substitute(paste(nn, "mol/mol"), list(nn=k))
xlab <- bquote(.(k) * "mol/mol")

plot(x,y, ylab = ylab, xlab = xlab)

What do I do wrong? How to get a Greek symbol to axis label through a vector?

like image 421
Mikko Avatar asked May 16 '12 09:05

Mikko


People also ask

How do you plot Greek letters in Matlab?

Include multiple characters in the superscript by enclosing them in curly braces {} . Include the Greek letters α and μ in the text using the TeX markups \alpha and \mu , respectively. Add text at the data point where t = 300 .


1 Answers

Try this:

xlab = parse(text=paste(k, "*mol/mol"))
like image 130
baptiste Avatar answered Oct 26 '22 23:10

baptiste