r - 在绘图矩阵中添加多个 R^2 值的简单方法
问题描述
所以我有一个以下形式的简单多图/图矩阵:
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-squared-values(对于简单的 lm-model)添加到我的每个图中?
谢谢!
更新:
有没有办法为我的绘图面板的 x 轴和 y 轴设置固定限制?我只需要将它们全部设置为相同的值(即使对于 x- 和 y)!
解决方案
你可以做这样的事情(因为你不提供我使用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)
推荐阅读
- css - CSS Flipcard using Bulma tiles
- stack - 我使用堆栈在此代码中遇到分段错误
- android - Getting "Cannot resolve symbol RobotActivity" with QiSDK
- logging - How do I add an appender to an existing logger in Log4j2?
- corda - Corda move tokens from account to party (account hosted in different party)
- python-3.x - Check if all list values in dataframe column are the same
- rust - What is the difference between tokio::spawn(my_future).await and just my_future.await?
- php - How can I get the body to show from $_POST when posting to PHP from Javascript
- mariadb - MariaDB Root Password
- css - Can't scroll big modal in Firefox