Re: [問題] 如何畫abline於特定的區間上
按你的例子,幫你改寫一下。
# 建立資料
set.seed(1)
dt <- data.frame(
x = runif(30),
y = c(rnorm(10,1,0.2), rnorm(10,2,0.2), rnorm(10,3,0.2))
)
# 建三個迴歸式
lm.1 <- lm(y ~ x, data = dt[ 1:10, ])
lm.2 <- lm(y ~ x, data = dt[11:20, ])
lm.3 <- lm(y ~ x, data = dt[21:30, ])
# 1. 我希望迴歸線的 x 在 [0.2, 0.8]
# 2. 如果迴歸線是直線,predict 二個點即可;
# 如果是曲線,就 predict 很多點讓它看起來像曲線
dt.pd <- data.frame(x = c(0.2, 0.8))
y.pred.1 <- predict(lm.1, dt.pd)
y.pred.2 <- predict(lm.2, dt.pd)
y.pred.3 <- predict(lm.3, dt.pd)
# 畫圖
plot(NULL, xlim = c(0,1), ylim = c(0,4), xlab="x", ylab="y")
# 畫點
points(dt$x[ 1:10], dt$y[ 1:10], pch = 2)
points(dt$x[11:20], dt$y[11:20], pch = 3)
points(dt$x[21:30], dt$y[21:30], pch = 4)
# 畫迴歸線,可以用 segments() 或 lines()
# 以下我用 lines()
lines(c(0.2, 0.8), y.pred.1, lty = 2)
lines(c(0.2, 0.8), y.pred.2, lty = 3)
lines(c(0.2, 0.8), y.pred.3, lty = 4)
# 圖示
legend(
x = 0, y = 4,
legend = c("Gropu 1", "Gropu 2", "Gropu 3"),
lty=c(2,3,4), pch=c(2,3,4)
)
※ 引述《sinclairJ (SunnyGymBoy)》之銘言:
: 如題 abline畫出的線都是占整個版面 如下圖
: ppt.cc/Nivoy
: 我要如何只畫特定的區間? 如下圖
: ppt.cc/9HpS6
: 目前的程式碼如下
: #產生資料
: x=runif(50)
: y=runif(50)
: #得知區間
: library(ifultools)
: x <- seq(0,2*pi,length=50)
: y <- as.numeric(y)
: z <- linearSegmentation(x,y,n.fit = 10,angle.tolerance=15)
: plot(x,y,type="o", col="blue")
: abline(v=x[z], lty=2)
: #>z [1]14 36 表示1-13個資料點做一次迴歸 14~35 36~50以此類推
: #產生三個區間之資料
: data=t(rbind(x,y))
: data1=as.data.frame(data[c(1:13),])
: data2=as.data.frame(data[c(14:35),])
: data3=as.data.frame(data[c(36:50),])
: #分別對三個區間做回歸
: model1=lm(y~x,data1) #intercept=0.5041,slope=-0.00728
: model2=lm(y~x,data2) #intercept=0.41374 ,slope=0.03807
: model3=lm(y~x,data3) #intercept=1.6148 ,slope=-0.2295
: #畫abline
: abline(a=0.5041,b=-0.00728,col="red",lwd=2)
: abline(a=0.41374,b=0.003807,col="green",lwd=2)
: abline(a=1.6148,b=-0.2295,col="blue",lwd=2)
: 有請各位先進教導小弟一下~感謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.37.172
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1437752254.A.987.html
推
07/25 16:36, , 1F
07/25 16:36, 1F
→
07/25 16:36, , 2F
07/25 16:36, 2F
→
07/25 16:37, , 3F
07/25 16:37, 3F
→
07/25 19:23, , 4F
07/25 19:23, 4F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章