R语言ggplot2绘图时如何在图形中使用数学表达式作为标注文本

2021-08-31 17:47:38 浏览数 (1)

图形中的文本有时需要使用数学表达式,如

PM_{2.5}

2.5需要使用下标,单位

mu g/m^3

涉及到希腊字母和上标,以及一些比较复杂的大型符号,如求和符号

sum

、积分符号

int

等。对此,R语言的基础包提供了完善的处理办法:

  • grDevices工具包提供了这些数学表达式的语法;
  • base工具包的expression()函数用于将这些语法在图形中转换成实际的效果。

下面举例说明:

  • 语法x^2对应的实际效果是
x^2

,输出代码是expression(x^2)

  • pi表示圆周率,代码expression(x^2)在图形中输出的就是圆周率的符号;
  • 一些文本需要使用特殊格式,如加粗斜体格式对应的语法是bolditalic()

以上例子对应的R代码如下:

代码语言:javascript复制
par(plt = c(0.05,0.95,0,1), ps = 20, adj = 0.5,
    family = "mono")
plot(1:6, type = "n", axes = F, ann = F)
abline(v = 1:6, lty = 2)
## 不使用expression()函数
text(1.5,3, "x^2")
# 使用expression()函数
text(2.5,3, expression(x^2))
text(3.5,3, expression(pi))
text(4.5,3, expression(f(x)))
text(5.5,3, expression(bolditalic(f(x))))

下面汇总一下R语言中各类数学表达式的语法(左侧)和对应的实际效果(右侧)。

  • 四则运算
  • 幂次开方、下标
  • 逻辑关系
  • 集合关系
  • 箭头
  • 特殊格式
  • 顶部格式
  • 希腊字母
  • 大型公式
  • 符号

符号类表达式需要额外使用symbols()函数进行转换,如expression(symbol("42"))

  • 其他

需要注意的是,以上 语法虽然由R语言的基础绘图系统工具包grDevices提供,但它属于通用语法,也可以在ggplot2绘图系统中使用。

0 人点赞