问题描述
使用斜体/粗体/换行符等格式在基本 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')))
和以前一样,如果要粘贴变量的内容,则需要替换。
而且 Voilà 这就是您需要的大部分情节数学!
对于任何其他符号或函数,请查看 ?plotmath