在 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()
所有 -- 有没有办法将相关数据放在 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()