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

时间:2012-03-09 21:14:41

标签: 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")))

1 个答案:

答案 0 :(得分: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")))

您的版本不起作用的原因是%~~%'运算符'期望成为表达式的一部分,左侧和右侧都有。 phantom()为您提供了一个(a)不可见的东西,(b)没有宽度 - 恰好是您需要的东西。

修改

我每天都学到一些东西。 Brian Diggs在评论中指出,你可以产生相同的效果,更简单的方法就是省略表达式中的逗号(在这种情况下你甚至不需要对paste()进行嵌套调用)。这是更好的解决方案:

text(50, 50, expression("Reginald is " %~~% "14 years old"))