如何在同一x轴上绘制具有不同开始日期的时间序列

时间:2012-07-03 10:45:21

标签: r

假设我有2个数据集,1个在x轴上有50天,有一个有20天,用代码创建

par(mfrow=c(2,1))
data1=rnorm(50)
plot(data1,type='l',xlab='Days')
data2=rnorm(20)
plot(data2,type='l',xlim=c(0,50),xlab='Days')

enter image description here

实际上,数据集2中的第1天对应于数据集1中的第20天,因此我想绘制数据集2,使得x轴(如上所示)从0到50,但数据从x = 20绘制到x = 40.我猜这是一个简单的答案,但我无法在网上找到它......

谢谢。

1 个答案:

答案 0 :(得分:3)

xy参数传递给情节。

plot(20:39,data2,type='l',xlim=c(0,50),xlab='Days')

虽然如果要绘制具有相同轴的多个数据集,最好使用ggplot2或晶格。你的情节看起来会好很多。

all_data <- data.frame(
  day = c(1:50, 20:39),
  y   = c(runif(50), rnorm(20)),
  grp = factor(rep(1:2, times = c(50, 20)))  
)

#ggplot2 style
library(ggplot2)
ggplot(all_data, aes(day, y)) +
  geom_line() +
  facet_grid(grp ~ .)

#lattice style
library(lattice)
xyplot(y ~ day | grp, all_data, type = "l", layout = c(1, 2))