5

我想知道如何在情节中绘制正无穷大符号和 -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  ) ) ) 
4

2 回答 2

7

?plotmath开始

如果R 中的text一个文本绘图函数 ( text, mtext, axis, legend) 的参数是一个表达式,则该参数被解释为一个数学表达式,并且输出将根据类似 TeX 的规则进行格式化。

labels参数text记录为

指定要写入的文本的字符向量或表达式。尝试将其他语言对象(名称和调用)强制转换为表达式,并将向量和其他分类对象强制转换为字符向量。as.character

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

  • 因为 R 不能处理调用向量,c所以实际上并没有创建向量,而是将结果强制转换为列表,类似于如何c(sum, mean)强制转换为列表,并且
  • 虽然text会强制从bquote自身返回的调用为表达式(将被正确解析),但它将列表强制为字符向量,该字符向量不会根据plotmath.

您可以强制使用 产生的调用列表cbquote明确使用as.expression,但expression直接调用并完全避免会更快bquote

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))return中expression(-infinity, infinity)。不像bquote,它有两个命名参数,但是expression需要...,所以用多个输入调用一次会更容易。

于 2017-03-26T21:46:41.370 回答
3

尝试:

text(c(-4, 6 ), rep(1, 2), c( bquote("- \U221E"), bquote("\U221E") ) ) 
于 2017-03-26T20:25:26.370 回答