Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
776 views
in Technique[技术] by (71.8m points)

r - 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?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try this:

xlab = parse(text=paste(k, "*mol/mol"))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...