我正在处理2个不同长度 105,102
的向量。称他们为y1,y2
尽管它们的长度不同,但每个向量代表30秒内发生的活动。
假设所有向量的第一个元素在时间= 0秒开始,我能够使用以下代码将它们绘制出来:
y1 <- plot(seq(0,100,length = 105), rnorm(length(seq(0,100,length = 105))), type = "l")
y2 <- plot(seq(0,100,length = 102), rnorm(length(seq(0,100,length = 102))), type = "l")
l <- length(y1)
x <- seq(0,l,length= l)
y <- y1
plot(x, y, type = "l", xlab = "time", ylab = "bla")
l <- length(y2)
x <- seq(0,l,length= l)
y <- y2
lines(x,y, type = "l")
现在上面的代码将生成一个x轴范围为$(0,105)$的图形。但是,我希望x轴显示$(0,30)$秒。
我知道主要的问题是这两个向量的长度不同,但我想要沿着0到30美元的时间间隔分割每个向量的元素。
我该如何处理?
答案 0 :(得分:2)
我认为OP只是希望在30秒的时间间隔内均匀分布每个y向量并绘制相同的图。在这种情况下,以下应该做的伎俩。基本上,对于x
和plot
函数的lines
参数,我们需要提供向量,其中元素的数量等于y
对应参数中元素的数量,从0到30.
set.seed(1234)
y1 <- rnorm(length(seq(0,100,length = 105)))
y2 <- rnorm(length(seq(0,100,length = 102)))
plot((30/length(y1))*seq_along(y1), y1, type = 'l',col='red', xlab='time', ylab='y')
lines((30/length(y2))*seq_along(y2), y2, col='green')
给出了