ggplot2 使用expression添加公式与数学符号

有时需要在图上标注诸如数学公式、上下标等符号,该操作可以通过expression函数完成。

原理

如果在ggplot2中text参数是一个表达式形式(expression),则该参数将被根据类似TeX的规则对进行格式化输出。expression可用于标题,注释以及x轴和y轴标签[1]

expression代码与输出的对应关系如图

使用方式

普通label

如果只是输出单独符号,则独立使用expression即可,如果组合复杂公式或添加文本描述,则在expression中使用paste进行拼接。

# 全公式
 labels = expression(-pi, -pi/2, 0, pi/2, pi)
# 文本与符号组合
 xlab = expression(paste("Phase Angle ", phi))

facet_grid()中的label

需要将label解析方式设置为”label_parsed”[2]

facet_grid(~ x, label = "label_parsed")

annotate()中的label

text类型的标注,需将parse设置为TRUE。

annotate("text", label = expression(...), parse = TRUE)

Reference