在 R 中的 xyplot 面板中添加相关图

Adding correlation figures in xyplot panels in R

所有 -- 有没有办法将相关数据放在 xyplot 图表中?我可以使用情节来做到这一点,例如

with(iris, plot(Sepal.Length, Petal.Length, pch=16), cex=1, main="Length: Sepal vs. Petal")
abline(fit <- lm(Sepal.Length ~ Petal.Length, data=iris), col='red')
legend("topleft", bty="n", legend=paste("R2 =", format(summary(fit)$adj.r.squared, digits=4)))

但是,当我通过xyplot使用点阵图时,这不起作用,例如

xyplot(Sepal.Length ~ Petal.Length | Species, data = iris,
       main = "Length: Sepal vs. Petal, by Species", 
       col = "darkblue", cex = 0.8, type=c("p","r"))

因为每个面板的回归线未命名或不可访问(与上一个示例中的 'fit' 不同)。虽然 R2 可以单独计算,但将所有信息放在图表的每个面板中似乎是一个优雅的解决方案。我将不胜感激您的建议,或者更好的方式来显示相同​​的信息。谢谢。

你可以用这个

library(ggplot2)
library(ggpmisc)

my.formula <- y ~ x

ggplot(data = iris, aes(x = Petal.Length, y = Sepal.Length)) +
  geom_smooth(method = "lm", se=FALSE, color="black", formula = my.formula) +
  stat_poly_eq(aes(label = paste0("atop(", ..eq.label.., ",", ..rr.label.., ")")), 
             formula = my.formula, parse = TRUE) + 
  facet_wrap(~Species, scales="free") + geom_point()