Use a variable within a plotmath expression

瘦欲@ 提交于 2019-12-28 02:01:27

问题


I'm trying to place the results of a regression (i.e., R2) in a graph, but can't seem to figure out how to call a variable from within an expression (it pastes the variable name).

Here is my code.

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

回答1:


Use bquote(). Here is an example with dummy data:

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)

The parts of the expression wrapped in .() get evaluated in the environment, i.e. the value of R2Val is substituted.

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

Another potential solution is substitute, which works similarly:

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



回答2:


I've managed to put it together using the substitute function.

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

All is good.




回答3:


To combine substitute() and paste(), I use the following code;

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

The result is the following;



来源:https://stackoverflow.com/questions/4423130/use-a-variable-within-a-plotmath-expression

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!