我想知道如何在情节中绘制正无穷大符号和 -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 ) ) )
?plotmath
开始
如果R 中的
text
一个文本绘图函数 (text
,mtext
,axis
,legend
) 的参数是一个表达式,则该参数被解释为一个数学表达式,并且输出将根据类似 TeX 的规则进行格式化。
labels
参数text
记录为
指定要写入的文本的字符向量或表达式。尝试将其他语言对象(名称和调用)强制转换为表达式,并将向量和其他分类对象强制转换为字符向量。
as.character
(强调我的)。bquote
实际上并不返回表达式(R 类,不是概念),而是语言对象(特别是调用)。这导致了两个问题:
c
所以实际上并没有创建向量,而是将结果强制转换为列表,类似于如何c(sum, mean)
强制转换为列表,并且text
会强制从bquote
自身返回的调用为表达式(将被正确解析),但它将列表强制为字符向量,该字符向量不会根据plotmath
.您可以强制使用 产生的调用列表c
并bquote
明确使用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
需要...
,所以用多个输入调用一次会更容易。
尝试:
text(c(-4, 6 ), rep(1, 2), c( bquote("- \U221E"), bquote("\U221E") ) )