[問題] 如何畫abline於特定的區間上

作者: sinclairJ (KEEP MOVING FORWARD)   2015-07-24 23:07:29
如題 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)
有請各位先進教導小弟一下~感謝!
作者: andrew43 (討厭有好心推文後刪文者)   2015-07-24 23:14:00
segments(),當然這比較麻煩,因為要先算predict()segments()就是畫自行指定的直線或折線罷了。
作者: sinclairJ (KEEP MOVING FORWARD)   2015-07-24 23:18:00
回A大 我會試試看 不過因為我要畫的線條還沒有結束畫出那三個區間的線段後 我還要針對每個線段上下平移某個值在畫線段 有種管制圖的概念 所以以我這個例子為例的話 會有九條線在這張圖上~
作者: andrew43 (討厭有好心推文後刪文者)   2015-07-24 23:38:00
沒很懂「上下平移」實際是什麼事情。有需要的話請再發言

Links booklink

Contact Us: admin [ a t ] ucptt.com