如果我正在绘制一系列回归模型。
xyplot(
Petal.Width ~ Petal.Length | Species,
data = iris,
panel = function(x, y, ...) {
panel.xyplot(x, y, ...)
mod1 <- lm(y~x)
panel.abline(mod1, col='#0080ff')
mod2 <- lm(y~poly(x, 2))
panel.curve(predict(mod2, newdata=data.frame(x=x)), col='#ff8000', lwd=2)
mod3 <- lm(y~poly(x, 3))
panel.curve(predict(mod3, newdata=data.frame(x=x)), col='#ff00ff', lwd=2)
},
grid = TRUE
)
如何在每条曲线旁边添加相关的 R 平方?谢谢
您可以使用面板功能中的
panel.text()
来完成此操作。
library(lattice)
xyplot(
Petal.Width ~ Petal.Length | Species,
data = iris,
panel = function(x, y, groups, ...) {
panel.xyplot(x, y, ...)
mod1 <- lm(y~x)
mod2 <- lm(y~poly(x, 2))
mod3 <- lm(y~poly(x, 3))
panel.abline(mod1, col='#0080ff')
panel.curve(predict(mod2, newdata=data.frame(x=x)), col='#ff8000', lwd=2)
panel.curve(predict(mod3, newdata=data.frame(x=x)), col='#ff00ff', lwd=2)
r21 <- sprintf("Rsq = %.2f", summary(mod1)$r.squared)
r22 <- sprintf("Rsq = %.2f", summary(mod2)$r.squared)
r23 <- sprintf("Rsq = %.2f", summary(mod3)$r.squared)
panel.text(1, 2.5, r21, adj=c(0,.5), col='#0080ff')
panel.text(1, 2.35, r22, adj=c(0,.5), col='#ff8000')
panel.text(1, 2.2, r23, adj=c(0,.5), col='#ff00ff')
},
grid = TRUE
)
创建于 2024-04-04,使用 reprex v2.0.2