Вы можете сделать что-то вроде этого (поскольку вы не предоставляете пример данных, я использую набор данных 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)