Adding greek character to axis title

2019-01-06 14:19发布

问题:

I want to add a greek character to the y-axis of my barplot in R.
The problem is that I need this character to be integrated in the title. I want to write:

Diameter of aperture ("mu"m)

in the axis label.

With

ylab=expression()

I can write the greek character, with

ylab="axis title"

I can write the title with proper spaces between the words.

But I can't find a way to put all these together and write a proper label with a greek word in the axis label. I hope I was clear enough.

回答1:

If you're using plotmath{grDevices}, the main help page (plotmath) contains an example of what you appear to want:

xlab = expression(paste("Phase Angle ", phi))

or for your case, I guess:

ylab = expression(paste("Diameter of aperture ( ", mu, " )"))

Does this work for you?



回答2:

I think I followed your question properly. The ~ forces a space between characters in a call to expression(). Is this what you want?

plot(1:3, ylab = expression("Diameter of apeture (" * mu ~ "m)"),
  , xlab = expression("Force spaces with ~" ~ mu ~ pi * sigma ~ pi)
  , main = expression("This is another Greek character with space" ~ sigma))



回答3:

And if you want to substitute variables in the text, use bquote. For instance, if you have a variable mu and want to show it in the title, then use the following idiom:

mu <- 2.8
plot(1:3, main=bquote(mu == .(mu)))

The part enclosed in .() will be substituted, so that the value of mu will be printed and not the greek "mu" character. Consult the R help on bquote for details.



回答4:

This should be much more straight forward with latex2exp:

require(latex2exp)
plot(1, xlab = TeX('$\\mu$'))


回答5:

And, in case you were dealing with an estimated quantity, plotmath{grDevices} also offers the possibility of adding a hat to your greek letter:

ylab = expression(paste("Diameter of aperture ( ", hat(mu), " )"))

The mu enclosed in hat() does the trick.