繁体   English   中英

将回归方程和r2加到ggplot2中用R绘图

[英]Adding regression equation and r2 to plot in ggplot2 with R

我有一系列csv文件,我正在绘制每个csv文件的三阶多项式回归。

我在该目录中设置目录和所有.csv文件:

setwd("tester/results")
filenames = dir(pattern="*.csv")

然后,我使用三阶多项式lm遍历文件并使用时间绘制体积。

for (i in 1:length(filenames)) { tmp <-read.csv(filenames[i]); print(ggplot(aes(x = Volume, y = time), data = tmp) + geom_point(aes(color = id)) + geom_smooth(aes(color = id), method= "lm", se = F, formula=y ~ poly(x, 3, raw=TRUE)))}

因此,给予

在此输入图像描述

我现在希望添加我用r2值绘制在图表上的lm函数的公式。

从这个SO问题 ,我试过:

for (i in 1:length(filenames)) { tmp <-read.csv(filenames[i]); print(ggplot(aes(x = Volume, y = time_normalised), data = tmp) + geom_point(aes(color = id)) + geom_smooth(aes(color = id), method= "lm", se = F, formula=y ~ poly(x, 3, raw=TRUE)) + stat_smooth_func(geom="text",method="lm",formula=y~poly(x,3,raw=TRUE),hjust=0,parse=TRUE))}

但是,从输出中可以看出,标签不是三阶多项式

在此输入图像描述

您可以使用包ggpmisc函数stat_poly_eq()将三阶多项式的方程式添加到绘图中。

此示例取自此程序包的插图

set.seed(4321)
x <- 1:100
y <- (x + x^2 + x^3) + rnorm(length(x), mean = 0, sd = mean(x^3) / 4)
my.data <- data.frame(x, 
                      y, 
                      group = c("A", "B"), 
                      y2 = y * c(0.5,2),
                      block = c("a", "a", "b", "b"))

formula <- y ~ poly(x, 3, raw = TRUE)
ggplot(my.data, aes(x, y)) +
      geom_point() +
      geom_smooth(method = "lm", formula = formula) +
      stat_poly_eq(aes(label =  paste(..eq.label.., ..adj.rr.label.., sep = "~~~~")),
                   formula = formula, parse = TRUE)

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM