如何在R上的绘图上为文本添加上标?

如何在R上的绘图上为文本添加上标?,r,plot,legend,superscript,R,Plot,Legend,Superscript,我需要它看起来像这样: text(25, 200, bquote( R^2 == .(rs), list(rs=round(rsquarelm2,2)))) R^2=某些值 我试过下面的代码,但不起作用,结果是“R(表达式(^2))=一些值”: 您不需要一个字符向量,而是一个表达式,因此 expression(R^2 == 0.85) 这就是你需要的。在这种情况下,您希望替换另一个R操作的结果。对于您想要的substitute()或bquote()。我发现后者更容易处理: rsquarelm

我需要它看起来像这样:

text(25, 200, bquote( R^2 == .(rs), list(rs=round(rsquarelm2,2))))
R^2=某些值

我试过下面的代码,但不起作用,结果是“R(表达式(^2))=一些值”:


您不需要一个字符向量,而是一个表达式,因此

expression(R^2 == 0.85)
这就是你需要的。在这种情况下,您希望替换另一个R操作的结果。对于您想要的
substitute()
bquote()
。我发现后者更容易处理:

rsquarelm2 <- 0.855463
plot(1:10, 1:10, type = "n")
text(5, 5, bquote(R^2 == .(round(rsquarelm2, 2))))

rsquarelm2函数
paste
返回字符串,而不是表达式。对于这样的情况,我更喜欢使用
bquote

text(25, 200, bquote( R^2 == .(rs), list(rs=round(rsquarelm2,2))))

如何在绘图中包含格式和数学值是个难题

例如,如果
ahat
是您感兴趣的参数
a
的估计器,则使用

title(替换(hat(a)=ahat,list(ahat=ahat)))

(请注意,它是
'=='
,而不是
'='
)。有时,
bquote()
会给出更多 紧凑的形式,例如,
标题(bquote(hat(a)=(ahat))

其中,
“.()”
中包含的子表达式将替换为其值

demo(plotmath)
也很有用


在这种情况下,您可以使用

title(substitute(R^2 = rsq, list(rsq = format(rsquarelm2, digits = 2))))


format
在这里比
round
更合适,因为您希望控制值的显示方式,而不是创建值本身的近似值。)

我通过谷歌搜索找到了这一点。也许你可以修改它:
text(-pi/2,0,expression(hat(alpha)=(X^t*X)^{-1}*X^t*y))
在我的情况下,我需要以
^1
-上标数字开始这一行,这是bquote似乎不喜欢的。我对任何建议都感兴趣(
expression(“^1”)不是一个解决方案,因为我想把
text\u的内容放在\u var`中,而后者似乎不容易处理
expression
bquote((text\u in\u var))
。有什么建议吗?
title(bquote(R^2 == .(format(rsquarelm2, digits = 2))))