我尝试将此文本添加到绘图中:"Model: y=1+ 2x - 3x^2 + 4x^3“,其中实际指数是这样呈现的(没有^字符)。(见截图)
下面是repro代码。第一个text()调用可以正常工作(没有预置的常规文本),但第二个不能(预置文本)。(执行soTest()以重现。)
有什么建议吗?我想我不知道应该搜索哪些R关键字来找到解决方案。任何帮助都将不胜感激!(请原谅我的陈词滥调,我正在为至少有几个非R程序员的观众编写幻灯片。)
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 )
}
发布于 2019-06-27 00:28:31
我想通了。显然,'=‘符号需要像这样转义:'==’。下面是一个新的soTest()函数以及生成的屏幕截图。它起作用了。感谢那些花时间在这个问题上的人。
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 )
}
发布于 2019-06-25 08:42:02
您需要将纯文本放在parse语句之外。
text( 2, 1400, paste("Model: y =", parse( text="1+2*x-3*x^2+4*x^3" )), adj=0 )
https://stackoverflow.com/questions/56745355
复制相似问题