为基本 R 绘图格式化文本的函数

Functions to format text for base R plotting

在基本 R plot() 中指定具有斜体/粗体/换行等格式的文本通常涉及以下一个或多个函数:

paste()
expression()
atop()
substitute()
italic()

对于这些函数之间的差异以及何时最好应用它们,是否有直观的解释?

您指的是 plotmath 语法。

首先,让我们明确一点,要这样解释 plotmath 表达式,您告诉 R 它是一个“表达式”,这就是为什么您需要 expression().

所以任何时候你想使用特殊符号或格式,如 italic()atop(),它实际上是 plotmath 的一部分,所以你需要将它包装在一个表达式中。例如:

plot(0, main = expression(atop(over,italic(under))))

如果您尝试过 ?italic?atop,您可能已经注意到它会直接将您带到 plotmath 手册页,其中列出了许多其他函数。

substitute()呢?那么在我之前的示例中,您会注意到我直接使用字符串来编写 'over' 和 'under',而没有将它们放在引号内。这是因为特殊的 expression() 环境。 因此,如果您需要将 inside 中的任何内容放入文本中的变量(而不是变量名称),那么您可以将表达式放在 substitute() 中并为其提供参数。例如:

plot(0, main = substitute(atop(oo,italic(under))), list(oo='over2')))

请注意,我们没有在表达式块周围放置替代项,而是将其完全替换。

最后,paste() 是从哪里来的?好吧,粘贴是胶水(双关语意)与 plotmath 未处理的任何文本。

因此,如果您需要数学符号(或格式化文本)之前或之后的文本,您可以 paste() 表达式(或替代)环境中 东西。例如:

plot(0, main = substitute(paste("b4", atop(oo,italic(under)), aft),
                          list(oo='over', aft = 'after3')))

和以前一样,如果你想粘贴一个变量的内容,你需要替换。


而且 这就是您需要的大部分情节!

对于任何其他符号或函数,请查看 ?plotmath