[问题] 如何画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