绘制正无穷大符号和负无穷大符号

Plot the positive infinity symbol and negative infinity symbol

我想知道如何在绘图中绘制正无穷大符号和 -Infinity 符号?

这是我的 R 代码(没有成功):

plot(1, ty ='n', ann = F, xlim = c(-4, 6), ylim = c(-3.5, 1.5) )

text(c(-4, 6 ), rep(1, 2), c( bquote(- infinity  ), bquote(infinity  ) ) ) 

尝试:

text(c(-4, 6 ), rep(1, 2), c( bquote("- \U221E"), bquote("\U221E") ) ) 

?plotmath 开始

If the text argument to one of the text-drawing functions (text, mtext, axis, legend) in R is an expression, the argument is interpreted as a mathematical expression and the output will be formatted according to TeX-like rules.

textlabels 参数记录为

a character vector or expression specifying the text to be written. An attempt is made to coerce other language objects (names and calls) to expressions, and vectors and other classed objects to character vectors by as.character.

(强调我的)。 bquote 实际上 return 不是一个表达式(R class,不是概念),而是一个语言对象(特别是调用)。这导致了两个问题:

  • 因为 R 无法处理调用向量,c 实际上并没有创建向量,而是将结果强制转换为列表,类似于 c(sum, mean) 被强制转换为列表的方式, 和
  • 虽然 text 会将调用 returned 从 bquote 本身强制转换为一个表达式(将被正确解析),但它将列表强制转换为一个字符向量,这确实未根据 plotmath.
  • 进行解释

您可以使用 as.expression 显式强制使用 cbquote 生成的调用列表,但直接调用 expression 并避免 [=20] 会更快=] 一共:

plot(1, ty ='n', ann = F, xlim = c(-4, 6), ylim = c(-3.5, 1.5))

text(c(-4, 6 ), rep(1, 2), expression(-infinity, infinity)) 

作为尾注,c 实际上 确实 对多个表达式起作用——某种程度上——因为 c(expression(-infinity), expression(infinity)) returns expression(-infinity, infinity)。与具有两个命名参数的 bquote 不同,expression 需要 ...,因此使用多个输入调用一次更容易。