在R中绘制包含"近似等于"的文本

dig*_*aps 2 r plotmath

我熟悉使用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)

  • 在这种情况下,你可以使用字符串本身而不是`phantom()`:`text(50,50,表达式(paste("Reginald是"%~~%"14岁"))) (4认同)