2016-04-22 9 views
0

私はcsvファイルごとに3次多項式回帰をプロットしている一連のcsvファイルを用意しています。回帰方程式とr2をggplot2でプロットするためにR

私はそのディレクトリ内のディレクトリとすべての.csvファイルを設定します。

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

私はその後、第三次多項式lmと時間に対して、ファイルやプロットのボリュームを反復。

enter image description here

を与えるこのよう

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 questionから

は、私が試した:

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))} 

しかし、あなたは出力から見ることができるように、ラベルはあなたが機能stat_poly_eq()を使用することができます

enter image description here

+1

関数 '「stat_smooth_funcは、」' ggplot2ライブラリ内ではなく、趣旨を追加またはSOあなたが提供する質問に答え@kdauriaに提供されたリンクからcoppiedする必要があります。 –

+0

右しかし、問題は残っている。ラベルは正しいとは思われません – LearningSlowly

+0

機能 '' stat_smooth_func ''は最初の回帰だけであり、3回目ではありません。この機能を使用するには、このコードを変更する必要があります。 –

答えて

2

多項式3次ではありませんパッケージggpmiscから3次多項式の方程式をプロットに追加します。

この例は、このパッケージのthe vignetteから取られています。

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) 

enter image description here

関連する問題