首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >R plot text:如何将常规文本前缀添加到以指数形式呈现的多项式(而不是^)

R plot text:如何将常规文本前缀添加到以指数形式呈现的多项式(而不是^)
EN

Stack Overflow用户
提问于 2019-06-25 08:21:00
回答 2查看 3.2K关注 0票数 0

我尝试将此文本添加到绘图中:"Model: y=1+ 2x - 3x^2 + 4x^3“,其中实际指数是这样呈现的(没有^字符)。(见截图)

下面是repro代码。第一个text()调用可以正常工作(没有预置的常规文本),但第二个不能(预置文本)。(执行soTest()以重现。)

有什么建议吗?我想我不知道应该搜索哪些R关键字来找到解决方案。任何帮助都将不胜感激!(请原谅我的陈词滥调,我正在为至少有几个非R程序员的观众编写幻灯片。)

代码语言:javascript
复制
evalPoly <- function( x, coeff ) {
    if ( length( coeff ) < 1 ) return( c(0) )   
    termSum <- 0
    for ( i in 1:length(coeff) ) {
        termSum <- termSum + coeff[i] * x^(i-1)
    }
    return( termSum )
}

soTest <- function() {
    coeff <- c( 1, 2, -3, 4 )
    x <- 1:8
    y <- evalPoly( x, coeff )
    plot( x, y )
    text( 2, 1600, parse( text="1+2*x-3*x^2+4*x^3" ), adj=0 )
    text( 2, 1400, parse( text="Model:  y = 1+2*x-3*x^2+4*x^3" ), adj=0 )
}

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-27 00:28:31

我想通了。显然,'=‘符号需要像这样转义:'==’。下面是一个新的soTest()函数以及生成的屏幕截图。它起作用了。感谢那些花时间在这个问题上的人。

代码语言:javascript
复制
soTest2 <- function() {
    coeff <- c( 1, 2, -3, 4 )
    x <- 1:8
    y <- evalPoly( x, coeff )
    plot( x, y )
    text( 2, 1600, parse( text="1+2*x-3*x^2+4*x^3" ), adj=0 )
    text( 2, 1400, parse( text="Model:  y == 1+2*x-3*x^2+4*x^3" ), adj=0 )
}

票数 1
EN

Stack Overflow用户

发布于 2019-06-25 08:42:02

您需要将纯文本放在parse语句之外。

代码语言:javascript
复制
text( 2, 1400, paste("Model:  y =", parse( text="1+2*x-3*x^2+4*x^3" )), adj=0 )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56745355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档