R - 如何在同一图表中使用两个数据集进行XY绘图?

时间:2015-11-07 18:23:02

标签: r

我有一个快速的问题(因为我正在努力学习如何使用它)。我试图做一个简单的XY图,它将显示来自2个数据集(var1和var2)的数据。我能够将所有数据加载到变量中没有问题,但我只能绘制var1。当我尝试绘制Var2时,我在xy.coords(x,y)中得到"错误:' x'并且' y'长度不同"。

关于我如何解决这个问题的任何想法?

以下是我正在做的事情:

#dataset 1

val1_time <- data.frame(time=c("04/09/15 04:52:30", "04/09/15 06:04:30", "04/09/15 07:14:24"))
val1 <- c(5.05, 0.29, 1.1)
val1_time$time <- strptime(val1_time$time,"%m/%d/%y %H:%M:%S") 

#dataset 2

val2_time <- data.frame(time=c("04/09/15 12:00:00", "04/10/15 12:00:00", "04/11/15 12:00:00"))
val2  <- c(1.925294118, 0.4555, 0.42)
val2_time$time <- strptime(val2_time$time,"%m/%d/%y %H:%M:%S") 


plot(val1_time,val1,col="blue", pch=18)

lines(val2_time,val2,col=“red”, pch=18)

1 个答案:

答案 0 :(得分:0)

您的代码中存在许多错误。首先,在处理时间序列时,必须使用zoo(非常适合没有时间的日期)或xts(日期和时间)这样的包。它允许你轻松合并时间序列,计算回报,滞后一系列...错误修复:你在val1_time中不需要$ time

library(xts);library(zoo)
#dataset 1
val1_time <- data.frame(time=c("04/09/15 04:52:30", "04/09/15 06:04:30", "04/09/15 07:14:24"))
val1_time<- strptime(val1_time$time,"%m/%d/%y %H:%M:%S")
val1 <- c(5.05, 0.29, 1.1)
val1_xts <-xts(val1,val1_time)

#dataset 2
val2_time <- data.frame(time=c("04/09/15 12:00:00", "04/10/15 12:00:00", "04/11/15 12:00:00"))
val2_time <- strptime(val2_time$time,"%m/%d/%y %H:%M:%S")
val2  <- c(1.925294118, 0.4555, 0.42)
val2_xts <-xts(val2,val2_time)

all_xts <-merge(val1_xts,val2_xts)
plot.zoo(all_xts,col=c("blue","red"), plot.type="single")

enter image description here