#file
#1 2
#3 2
#2 4
#。。。
#假设文件如上所示,是个两列的文件(原本文件有400行),也即是两个列向量,每个列向量的维数为400维
#列向量1:a[,1]
#列向量2:a[,2]
a=read.table("test2")
#插值,把原有的4个点,通过3次样条插值,变成1000个点
#spline(x,y,n=...)的x位置表示x的坐标,y位置表示y的坐标,n表示要插值成新的维数,当然这里可以提高维数也可以降低维数
#比如:spline(c(1:400),a[,1],n=1000)表示要得到新的插值后的x,y的坐标,其中newa1x=spline(c(1:400),a[,1],n=1000)$x是要得到x的变成新维数后的坐标,newa1y新y坐标。
#也即是原有的a[,1]向量变成了newa1y=spline(c(1:400),a[,1],n=1000)$y对应的高维的向量,newa1x只是一个序列
newa1x=spline(c(1:400),a[,1],n=1000)$x
newa1y=spline(c(1:400),a[,1],n=1000)$y
#同理a[,2]
newa2x=spline(c(1:400),a[,2],n=1000)$x
newa2y=spline(c(1:400),a[,2],n=1000)$y
#这里是想画a[,1]和a[,2]围成的多边形
#这里需要把a[,1]和a[,2]两个向量连接起来,因为是要围成多边形,因此第一条线走到最后一个点的时候,要回转,就像顺时针写个“0”似的,因此在后面的向量要reverse,翻转一下
newxx=c(newa1x,rev(newa2x))
newyy=c(newa1y,rev(newa2y))
#先画个图,图中type=‘n’,
表示不输出图像
plot(newxx, newyy, type="n", xlab="Time",
ylab="Distance",ylim=c(0,2))
#这里画多边形
polygon(newxx, newyy, col="lightblue")
![]() |
|