我熟悉使用expression()和bquote()在R中的文本基础图形中绘制特殊Tex时的标记.但是如果没有解析器抛出错误,如何做"近似等于".我指的是?plotmath确定标记时.
plot(c(1,100), c(1,100), type="n", axes=FALSE, xlab="", ylab="")
# This works
text(50, 80, expression(paste("The area is 24 ", km^2)))
# This doesn't
text(50, 50, expression(paste("Reginald is ", %~~% , "14 years old")))
Run Code Online (Sandbox Code Playgroud)
Jos*_*ien 10
这应该做的伎俩:
plot(c(1,100), c(1,100), type="n", axes=FALSE, xlab="", ylab="")
text(50, 50,
expression(paste("Reginald is ", phantom() %~~% phantom(), "14 years old")))
Run Code Online (Sandbox Code Playgroud)
你的版本不起作用的原因是%~~%'运算符'希望成为表达式的一部分,左边和右边都有.phantom()为您提供的东西是(a)不可见的,(b)不占用宽度 - 正是您需要的东西.
编辑:
我每天都学到一些东西.Brian Diggs在评论中指出,你可以产生相同的效果,更简单的是只是省略表达式中的逗号(在这种情况下你甚至不需要嵌套调用paste()).这是更好的解决方案:
text(50, 50, expression("Reginald is " %~~% "14 years old"))
Run Code Online (Sandbox Code Playgroud)