所以我有一个简单的多图/图矩阵,其形式如下:
DATA_SE <- read.table("DEWRATES_SE_15-17.txt", sep = "\t", dec = ".", header = T)
multiplot_SE <- pairs(~SE_21+SE_25+SE_26, data = DATA_SE, main = "Tauraten_Selhausen")
multiplot_SE
有什么方法可以将r平方值(对于简单的lm-modell)添加到我的每个图中?
谢谢!
更新:
是否可以为绘图面板的x和y轴设置固定限制? 我只需要将它们全部设置为相同的值(即使对于x-和y)!
答案 0 :(得分:1)
您可以执行以下操作(因为您未提供示例数据,我正在使用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)