如何在R上的图上包含上标?

时间:2013-09-23 17:28:23

标签: r plot legend superscript

我需要它看起来像这样:

R ^ 2 =一些值

我已经尝试了下面的代码,但它不起作用,它出现为“R(表达式(^ 2))=某些值”而不是:

text (25, 200, paste ("R (expression (^2)) =", round (rsquarelm2, 2)))

3 个答案:

答案 0 :(得分:8)

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

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))))

使用bquote(),评估.( )中的任何内容,并将结果包含在返回的表达式中。

答案 1 :(得分:4)

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

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

答案 2 :(得分:2)

如何在图表中包含格式和数学值FAQ 7.13

  

例如,如果ahat是您感兴趣的参数a的估算值,请使用

     

title(substitute(hat(a) == ahat, list(ahat = ahat)))

     

(请注意,它是‘==’而不是‘=’)。有时bquote()给出更多   紧凑形式,例如title(bquote(hat(a) = .(ahat)))

     

其中‘.()’中包含的子表达式被其值替换。

demo(plotmath)也很有用。


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

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

title(bquote(R^2 == .(format(rsquarelm2, digits = 2))))

format此处比round更合适,因为您想要控制值的显示方式,而不是创建值本身的近似值。)