你可以做这样的事情(因为你不提供我使用iris
数据集演示的示例数据):
panel.rsquared <- function(x, y) {
fit <- lm(y ~ x)
usr <- par("usr")
on.exit(par(usr))
par(usr = c(0, 1, 0, 1))
text(0.5, 0.5, sprintf(
"R squared = %4.3f\n Adj. R squared = %4.3f",
summary(fit)$r.squared,
summary(fit)$adj.r.squared))
}
pairs(iris[, -ncol(iris)], upper.panel = panel.rsquared)
更新
根据您的评论,您可以定义任何上/下面板功能以满足您的需求。
例如,您可以执行如下所示的操作。请注意,这不是很有用,因为很难(不可能)避免重叠的文本和点。pairs
这就是配置上部面板以显示注释/文本和下部面板以显示绘图时的全部想法(和强度) 。这样你就可以避免冗余(在你原来的帖子中重复,因此是多余的)。
无论如何,为了它的价值:
panel.plot_withrsquared <- function(x, y) {
points(x, y)
fit <- lm(y ~ x)
usr <- par("usr")
on.exit(par(usr))
par(usr = c(0, 1, 0, 1))
text(0.1, 0.8,
sprintf("R squared = %4.3f",summary(fit)$r.squared),
adj = 0, cex = 0.8)
}
pairs(
iris[, -ncol(iris)],
upper.panel = panel.rsquared,
lower.panel = panel.plot_withrsquared)