我想在 R 中的条形图的 y 轴上添加一个希腊字符。
问题是我需要将这个角色整合到标题中。我想写:
Diameter of aperture ("mu"m)
在轴标签中。
与
ylab=expression()
我可以写希腊字,用
ylab="axis title"
我可以写出标题,并在单词之间留出适当的空格。
但我找不到一种方法将所有这些放在一起并在轴标签中写出带有希腊单词的正确标签。我希望我说得足够清楚。
如果您使用
plotmath{grDevices}
,主帮助页面 (plotmath) 包含您似乎想要的示例:
xlab = expression(paste("Phase Angle ", phi))
或者对于你的情况,我猜:
ylab = expression(paste("Diameter of aperture ( ", mu, " )"))
这对你有用吗?
我想我正确地理解了你的问题。
~
在调用 expression()
时强制在字符之间添加空格。这是你想要的吗?
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))
如果您想替换文本中的变量,请使用
bquote
。例如,如果您有一个变量 mu
并希望在标题中显示它,则使用以下习惯用法:
mu <- 2.8
plot(1:3, main=bquote(mu == .(mu)))
.()
中包含的部分将被替换,以便打印mu
的值而不是希腊语“mu”字符。有关详细信息,请参阅 bquote
上的 R 帮助。
更新(很久以后...):在这个 Unicode 时代,只需用其 Unicode 指定希腊字符即可。例如,希腊字母“mu”的 Unicode 是
00B5
。试试这个:
mu <- 2.8
plot(1:3, main=paste("\U00B5 =", mu))
此外,如果您使用 Mac,大多数应用程序(包括 RStudio)的“编辑”菜单中的“表情符号和符号”菜单项可让您将所需的任何奇特字符添加到字符串中。在这种情况下,
plot
调用将如下所示:
plot(1:3, main=paste("μ =", mu))
这是最简单的。我还没有在其他平台上尝试过,所以这可能不如
\Uxxxx
方法那么便携。
这应该更直接
latex2exp
:
require(latex2exp)
plot(1, xlab = TeX('$\\mu$'))
并且,如果您正在处理估计数量,
plotmath{grDevices}
还提供了在希腊字母中添加帽子的可能性:
ylab = expression(paste("Diameter of aperture ( ", hat(mu), " )"))
包含在
mu
中的 hat()
就可以了。
我在使用 Windows 10 时使用合适的 TrueType 字体以及 R 3.62 上的帮助包 utf8 为上面的 Chase 绘图示例(从 2011 年开始)提供了更新的答案。 在我的回答中,我给 μ 赋了一个值。我只是通过十六进制 (??) 代码来调用 unicode 字符。空格只是引号内的“空格”。请参阅我的回答这里:
另请参阅: http://www.unicode.org/Public/10.0.0/ucd/UnicodeData.txt
# pi small case
utf8_print("\u03C0")
"π"
# sigma small case
utf8_print("\u03C3")
"σ"
μ <- abs(digamma(1))
μseq <- seq(μ,3*μ,μ)
dev.new()
plot(μseq, ylab = "Diameter of apeture ( μ m)",
, xlab = "Force spaces with ~ μ \u03C0 \u03C3 \u03C0 ",
, main = "This is another Greek character with space \u03C3")
#