2017-01-04 19 views
0

I両対数グラフましたが、私が使用して回帰直線を得た:ggplot2のログログプロットで回帰直線の方程式を取得するにはどうすればよいですか?

geom_smooth(formula = y ~ x, method='lm') 

をしかし、今、私はこの線の方程式を取得したいと思います(例えば Y = A * X ^( -b))を入力して印刷します。私はそれをlin-linプロットで取得しましたが、この場合は取得できませんでした。 ここでは、コードです:

mydataS<-data.frame(DurPeak_h[],IntPeak[],IntPeakxDurPeak[],ID[]) #df peak 
names(mydataS)<-c("x","y","ID","IDEVENT") 

plotID<-ggplot(mydataS, aes(x=x, y=y, label=IDEVENT)) + 
geom_text(check_overlap = TRUE, hjust = 0, nudge_x = 0.02)+ 
geom_point(colour="black", size = 2) + geom_point(aes(colour = ID)) + 
geom_quantile(quantiles = qs, colour="green")+ 
scale_colour_gradient(low = "white", high="red") + 
scale_x_log10(limits = c(min(DurEnd_h),max(DurEnd_h))) + 
scale_y_log10(limits = c(min(IntEnd),max(IntEnd))) + 
geom_smooth(formula = y ~ x, method='lm') 

ggsave(height=7,"plot.pdf") 
+1

ggplotの外にモデルをフィットさせるのがおそらく最も簡単です –

+0

どこから計算式が得られますか? –

+0

自分の人生をもっと難しくしてはいけません。自分自身に 'lm'を合わせてください。 'ggplot2'はモデリングパッケージではありません。 – Axeman

答えて

0

は回避策でそれをやったとして「B」として与えられた切片値と係数を使用します。2つのパラメータを計算するnlsを使用しては正確B、:その後、

nlsPeak <- coef(nls(y ~ a*(x)^b, data = mydataS, start = list(a=30, b=-0.1))) 

plott annotateでラインをINGの(hereいくつかの例を参照)、最終的に機能を使って数式を印刷:

次のように呼ば
power_eqn = function(ds){ 
    m = nls(y ~ a*x^b, start = list(a=30, b=-0.1), data = ds); 
    eq <- substitute(italic(y) == a ~italic(x)^b, 
       list(a = format(coef(m)[1], digits = 4), 
        b = format(coef(m)[2], digits = 2))) 
    as.character(as.expression(eq)); 
} 

annotate("text",x = 3, y = 180,label = power_eqn(mydataS), parse=TRUE, col="black") + 

はそれが役に立てば幸い!

0
mydataS<-data.frame(DurPeak_h[],IntPeak[],IntPeakxDurPeak[],ID[]) 
names(mydataS)<-c("x","y","ID","IDEVENT") 
model <- lm(y~x, header = T) 
summary(model) 

あなたの「」

関連する問題