[英]How to fix the labeling of a regression line equation on graph (using ggplot2)
[英]Formatting regression line equation using ggplot2 in R
我很好奇一个人如何编辑Jayden的以下解决方案,以使方程的格式为y = bx + a或y = bx-a? 我想使其看起来尽可能干净。
lm_eqn = function(m) {
l <- list(a = format(coef(m)[1], digits = 2),
b = format(abs(coef(m)[2]), digits = 2),
r2 = format(summary(m)$r.squared, digits = 3));
if (coef(m)[2] >= 0) {
eq <- substitute(italic(y) == a + b %.% italic(x)*","~~italic(r)^2~"="~r2,l)
} else {
eq <- substitute(italic(y) == a - b %.% italic(x)*","~~italic(r)^2~"="~r2,l)
}
as.character(as.expression(eq));
}
我试图在%。%中消除,这会引发错误,并且试图反转顺序,但是函数的if / else部分中的语法存在问题。 我也想在方程式的格式设置中使coeff(a)的显示不带负号。 abs(a)返回| a |。 感谢您的输入! 感激不尽!
这是从另一个线程开始的( 在图上添加回归线方程和R2 )
如果要使用b * x + a形式,则只需:
if (coef(m)[2] >= 0) {
eq <- substitute(italic(y) ==
b %.% italic(x) + a*","~~italic(r)^2~"="~r2, l)
} else {
eq <- substitute(italic(y) ==
- b %.% italic(x) + a *"," ~~ italic(r)^2 ~"="~r2, l)
}
编写R表达式需要了解以下语法规则:标记/分隔符/标记,但是您可以使用“ +”或“-”作为一元分隔符。 ?plotmath中的plotmath符号表的上部具有可接受的分隔符。 空格和换行符将被忽略。
您看到什么错误? 这对我来说按要求给出bx ± a
。 您必须将abs()
移至a
而不是b
的定义,并测试coef(m)[1]
而不是2 ...
lm_eqn = function(m) {
l <- list(a = format(abs(coef(m)[1]), digits = 2),
b = format(coef(m)[2], digits = 2),
r2 = format(summary(m)$r.squared, digits = 3));
if (coef(m)[1] >= 0) {
eq <- substitute(italic(y) == b %.% italic(x) + a*","~~italic(r)^2~"="~r2,l)
} else {
eq <- substitute(italic(y) == b %.% italic(x) - a*","~~italic(r)^2~"="~r2,l)
}
as.character(as.expression(eq));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.