【问题标题】:Use a variable within a plotmath expression在绘图表达式中使用变量
【发布时间】:2011-05-24 07:32:51
【问题描述】:

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

这是我的代码。

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

【问题讨论】:

    标签: r plotmath


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      为了结合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)  
      )
      )
      

      结果如下;

      【讨论】:

        【解决方案3】:

        我已经设法使用替代功能将它们组合在一起。

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

        一切都好。

        【讨论】:

        • 那行不通。您缺少一个参数来告诉substitute 要替换哪些变量。看我的回答。
        • 我已经设法用上述解决方案将文本粘贴到图表中;它似乎替代了变量调用,同时按应有的方式评估绘图数学。我不知道为什么它不适合你。
        • 好吧,我已经在 2 台机器上检查了这一点,在 Linux 上同时安装了 R2.11 补丁和 R2.12 补丁,你的答案在这两个机器上都不起作用。 R2Val 在情节上按字面意思打印,而不是被解释。我认为?substitute 很清楚,除非您为env 提供一些东西,否则在此示例中不会进行参数替换。
        • 我也在我的 linux 机器上测试了上面的代码,我想我已经弄清楚了不同之处。直接在控制台中运行上面的代码会导致变量被逐字打印(即 R2Val),但是,当我之前运行代码时,它被包装在一个函数中。如果您将模型开发和绘图代码包装在一个函数中,它将给出所需的结果。在这种情况下,环境必须是隐含的。我接受你回答加文,因为这是最好的方法。我希望这能解决问题。
        猜你喜欢
        • 2017-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-22
        • 2020-06-28
        • 2011-05-29
        相关资源
        最近更新 更多