在不单独创建 lm 对象的情况下将 p 值添加到 ggplot
Add p-value to ggplot without creating a lm-obejct separately
我必须创建大量 (100+) 线性模型的 ggplots。我想将 p 值(可能还有 R2)添加到每个图中。我知道使用 ggpmisc
可以做到这一点。在这里,我使用 stat_fit_glance
添加 p 值。我的 'problem' 是这两个都要求我先 运行 lm
插入为公式 = my_lm.
由于我必须创建大量绘图,所以我想知道是否有办法避免先创建 lm 对象,并在生成 ggplot 时简单地计算它?我可以使用 stat_compare_means
对箱线图进行 t 检验,并且真的希望找到一种方法也可以使用 lm 来做到这一点。
我的代码如下。我希望能够跳过第一行代码:
my_lm <- lm(y ~ x)
ggplot(data = complete, aes(x= x, y = y))+
geom_point()+
theme_classic()+
geom_smooth(method = "lm")+
labs(x="Ellenberg F", y = "Species richness")+
stat_fit_glance(method = 'lm',
method.args = list(data = complete, formula = my_lm),
geom = 'text',
aes(label = paste("p-value = ", signif(..p.value.., digits = 4), sep = "")),
label.x = 8.5, label.y = 25, size = 3)
我试过简单地输入公式 = y ~ x 但没有成功。
来自 ggpmisc::stat_fit_glance
的帮助:method.args = list(formula = y ~ x)
。
这意味着您不需要先 运行 和 lm
。
您只能指定线性模型的公式。
library(ggpmisc)
set.seed(1)
n <- 100
x <- 8+rnorm(n)
y <- 11+x+2*rnorm(n)
complete <- data.frame(x, y)
summary(lm(y~x))
ggplot(data = complete, aes(x= x, y = y))+
geom_point()+
theme_classic()+
geom_smooth(method = "lm")+
labs(x="Ellenberg F", y = "Species richness")+
stat_fit_glance(method = 'lm',
method.args = list(formula = y ~ x), geom = 'text',
aes(label = paste("p-value=", signif(..p.value.., digits = 4),
" R-squared=", signif(..r.squared.., digits = 3), sep = "")),
label.x = 8.5, label.y = 25, size = 5)
我必须创建大量 (100+) 线性模型的 ggplots。我想将 p 值(可能还有 R2)添加到每个图中。我知道使用 ggpmisc
可以做到这一点。在这里,我使用 stat_fit_glance
添加 p 值。我的 'problem' 是这两个都要求我先 运行 lm
插入为公式 = my_lm.
由于我必须创建大量绘图,所以我想知道是否有办法避免先创建 lm 对象,并在生成 ggplot 时简单地计算它?我可以使用 stat_compare_means
对箱线图进行 t 检验,并且真的希望找到一种方法也可以使用 lm 来做到这一点。
我的代码如下。我希望能够跳过第一行代码:
my_lm <- lm(y ~ x)
ggplot(data = complete, aes(x= x, y = y))+
geom_point()+
theme_classic()+
geom_smooth(method = "lm")+
labs(x="Ellenberg F", y = "Species richness")+
stat_fit_glance(method = 'lm',
method.args = list(data = complete, formula = my_lm),
geom = 'text',
aes(label = paste("p-value = ", signif(..p.value.., digits = 4), sep = "")),
label.x = 8.5, label.y = 25, size = 3)
我试过简单地输入公式 = y ~ x 但没有成功。
来自 ggpmisc::stat_fit_glance
的帮助:method.args = list(formula = y ~ x)
。
这意味着您不需要先 运行 和 lm
。
您只能指定线性模型的公式。
library(ggpmisc)
set.seed(1)
n <- 100
x <- 8+rnorm(n)
y <- 11+x+2*rnorm(n)
complete <- data.frame(x, y)
summary(lm(y~x))
ggplot(data = complete, aes(x= x, y = y))+
geom_point()+
theme_classic()+
geom_smooth(method = "lm")+
labs(x="Ellenberg F", y = "Species richness")+
stat_fit_glance(method = 'lm',
method.args = list(formula = y ~ x), geom = 'text',
aes(label = paste("p-value=", signif(..p.value.., digits = 4),
" R-squared=", signif(..r.squared.., digits = 3), sep = "")),
label.x = 8.5, label.y = 25, size = 5)