2017-07-06 1 views
1

どのように私はablineの長さを、1985年から1990年の間にのみ、傾きと切片を使って制限することができます。私はgeom_segmentを知っていますが、傾きと傍受はしません。 は、ここに私のデータとだけgeom_segmentを使用するスクリプト勾配と切片を使ってggplot2のアブラインの長さを制限する方法は?

> dput(df) 
structure(list(year = c(1979, 1980, 1981, 1982, 1983, 1984, 1985, 
1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 
1997, 1998), value = c(7.33, 10.32, 11.65, 6.19, 8.3, 9.24, 8.13, 
9.94, 10.85, 11.37, 7.17, 9.18, 11.24, 11.38, 8.32, 9.29, 7.48, 
8.63, 10.17, 8.94)), .Names = c("year", "value"), row.names = c(NA, 
-20L), class = c("tbl_df", "tbl", "data.frame")) 

スクリプト

plt <- ggplot(df, aes(year, value)) + 
    geom_line() + 
    geom_abline(aes(slope = 0.00225, intercept = 4.85100), colour = "red", lty = "dashed") 

plt 

答えて

3

です。 xの端点と勾配と切片を与えられたyの端点を計算することは自明です。

xs = c(1985, 1990) 
beta = c(4.851, .00225) 
ys = cbind(1, xs) %*% beta 

... + 
geom_segment(aes(x = xs[1], xend = xs[2], y = ys[1], yend = ys[2]), 
    colour = "red",lty = "dashed") 
+0

ありがとう、私はそれを考えていたはずです。 –

関連する問題