R语言

R语言绘图中的希腊字母、特殊符号或公式问题

2019-04-10  本文已影响0人  spacepace

expression包

expression是用来生成表达式的包,其语法特别奇怪,例如要生成\mathbf{log_{2}}\mathit{\sigma},其中前面的是加粗的,后面字母是倾斜的,则其表达式可以写成:

expression(bold("log"["2"])*italic(sigma))

两个需要放在一起的符号可以用*连接起来
如果表达式中如果有文字混编排,可以用paste函数将其连接起来。

expression(paste(bold("log"["2"])*italic(sigma)," + ",bold("log"["2"])*bolditalic(alpha)))

三种字体,加粗、倾斜、加粗并且倾斜。

latex2exp包

latex2exp包实际上是一种将latex语法转变为expression语句的辅助包。
https://cran.r-project.org/web/packages/latex2exp/vignettes/using-latex2exp.html

install.packages('latex2exp')
library(latex2exp)

熟悉latex的可以直接写出latex公式、不熟悉的可以在在线latex编辑器中将latex公式编辑好拷贝出来,例如tex格式的公式:
\alpha^\beta
其latex代码为:

$\alpha^\beta$

将该代码写入tex函数中即可得到expression的表达式,其中符号\需要转义:

TeX('$\\alpha^\\beta$')

即可输出expression格式的表达式:

expression(`$\alpha^\beta$` = paste("", "", alpha, , , , phantom()^{
    paste(beta, , , , "")
}))

通过绘图可以直接预览其效果:

plot(TeX("A $\\LaTeX$ formula: $\\frac{2hc^2}{\\lambda^5} \\,
      \\frac{1}{e^{\\frac{hc}{\\lambda k_B T}} - 1}$"), cex=2)

输出为:


输出图片

因此绘图时直接将上述语句替代相关文字即可实现复杂特殊公式的绘图。

windows字体错误

有时候输出的图片中一些公式字体错误,例如chi,其输出为c而不是\chi,这说明windows中的symbol字体错误了,经常使用AI编辑软件的容易发生这类错误。解决方案为,将本机的symbol字体删除后,在一个正常使用的电脑上拷贝出其symbol字体(不要从网络上下载,网络上的错误居多),重新安装该字体。

这样一来,可以在R语言图片中由程序生成任何含有特殊符号的数学表达式了。

遇到问题记住三个要点,windows fonts是否正确?expression是否灵活利用三种字体和组合符号? tex中是否转置了必要的符号?

上一篇 下一篇

猜你喜欢

热点阅读