在plotmath表达式中使用变量

时间:2010-12-12 18:11:37

标签: r plotmath

我正在尝试将回归结果(即R2)放在图表中,但似乎无法弄清楚如何从表达式中调用变量(它粘贴变量名称)。

这是我的代码。

R2Val <- signif(summary(sMod_pre90)$r.squared[1], 2)
text(92, 4, expression(paste(R^2, " = ", R2Val)), adj = 0, cex = 0.85)

3 个答案:

答案 0 :(得分:28)

使用bquote()。以下是虚拟数据的示例:

set.seed(1)
DF <- data.frame(A = rnorm(100), B = rnorm(100))
mod <- lm(B ~ A, data = DF)
R2Val<-signif(summary(mod)$r.squared[1], 2)

.()中包含的表达式部分在环境中进行评估,即R2Val的值被替换。

plot(B ~ A, data = DF)
text(1.5, 2, labels = bquote(R^2 == .(R2Val)), adj = 0, cex = 0.85)

另一个可能的解决方案是substitute,它的工作方式类似:

plot(B ~ A, data = DF)
text(1.5, 2, labels = substitute(R^2 == A, list(A = R2Val)), adj = 0, cex = 0.85)

答案 1 :(得分:0)

我已经设法使用替代功能把它放在一起。

R2Val<-signif(summary(sMod_pre90)$r.squared[1],2) text(92,4,substitute(R^2~"="~R2Val),adj=0,cex=0.85)

一切都很好。

答案 2 :(得分:0)

为了结合substitute()paste(),我使用以下代码;

waic <-1;
chisquare <-2;
plot(x=1:2,y=1:2, 
     main =  substitute(paste(
    "chi^2 goodness of fit ", 
       chi^2*(D/theta) , "=",  chisquare ,
       ".  WAIC =",waic),


list(chisquare=chisquare,waic=waic)  
)
)

结果如下;

enter image description here