简体   繁体   English

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

[英]R - how to do an XY plot with two datasets in same graph?

I have a quick R question (as I'm trying to learn how to use it). 我有一个快速的R问题(正在尝试学习如何使用它)。 I'm trying to do a simple XY plot that will show data from 2 datasets (var1 and var2). 我正在尝试做一个简单的XY绘图,它将显示来自2个数据集(var1和var2)的数据。 I'm able to load all the data into variables with no problem, but I can only plot var1. 我可以毫无问题地将所有数据加载到变量中,但是我只能绘制var1。 When I try plotting Var2, I get "Error in xy.coords(x, y) : 'x' and 'y' lengths differ". 当我尝试绘制Var2时,出现“ xy.coords(x,y)中的错误:'x'和'y'的长度不同”。

Any thoughts on how I can fix this? 关于如何解决此问题有任何想法吗?

Here is what I'm doing: 这是我在做什么:

#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)

There are a number of mistakes in your code. 您的代码中存在许多错误。 First, when dealing with time series, it is essential to use a package such as zoo (ideal for dates without time) or xts (for dates and time). 首先,在处理时间序列时,必须使用诸如zoo (对于没有时间的日期是理想的)或xts (对于日期和时间)的软件包。 It allows you to merge time series easily, calculate returns, lag a series... Mistake that was fixed: You don't need $time in val1_time 它使您可以轻松地合并时间序列,计算收益,滞后一个序列...已解决的错误: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")

在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM