我想知道如何在情节中绘制正无穷大符号和无穷大符号?
这是我的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 ) ) )
Run Code Online (Sandbox Code Playgroud)
?plotmath 启动
如果
text参数的文本绘图功能之一(text,mtext,axis,legend在R)是一个表达,所述参数被解释为一个数学表达式和输出将根据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))
Run Code Online (Sandbox Code Playgroud)
作为结束语,c实际上确实可以处理多个表达式 - c(expression(-infinity), expression(infinity))返回的类型expression(-infinity, infinity).不像bquote,它有两个命名参数,expression需要...了,所以它更容易只是多输入调用它一次.
尝试:
text(c(-4, 6 ), rep(1, 2), c( bquote("- \U221E"), bquote("\U221E") ) )
Run Code Online (Sandbox Code Playgroud)