我有两个独立的数据集:AUD-USD
和CHF-JPY
,它们看起来像这样(每100毫秒快照一次):
currency, price, datetime
CHF/JPY, 93.84, 2011-09-06 08:00:00.000 #from 8:00 to 8:30
AUD-USD, 1.84, 2011-09-06 07:00:00.000 #from 7:00 to 9:00
mydata$datetime <- as.POSIXct(data$datetime, tz="GMT")
time1<-as.POSIXct("2011-09-06 7:00:00", tz="GMT")
time2<-as.POSIXct("2011-09-06 9:00:00", tz="GMT")
plot(price~datetime, xaxt="n",main="", xlab="Time", ylab="Price", data=mydata)
我试过了:
axis(1,at=seq(time1,time2,by="hour"),label=seq(time1,time2,by="hour"))
我希望两个货币对的两个分开的图具有相同的x轴以进行比较。
07:00, 07:30, 08:00, 08:30, 09:00
由于CHF-JPY
数据仅在8:00到8:30之间,因此我的x轴不同。
抱歉,我没有足够的声誉来发布图片。
编辑:
dput(mydata)
structure(list(currency = c("CHF/JPY"), price = c(93.84), Volume = c(1), datetime = structure(c(1315296191.6))))
答案 0 :(得分:1)
绘制其中一个时间序列,如上所示,并使用行(second.obj)添加第二个时间序列。如果这不符合您的要求,请发表评论。回应上述内容,我希望您使用dput(my_data)
进一步修改问题。
答案 1 :(得分:0)
使用dput(my_data)
并首先发布您的示例数据。永远记住发布样本数据很重要,以及发布明确定义的问题。那么只有有人可以回答您的问题。
答案 2 :(得分:0)
喜欢这个吗?
set.seed(1)
df.1 <- data.frame(currency=rep("CHF/JPY",31),
price=rnorm(31,60,2),
volume=rnorm(31,5e5,1e5),
datetime=as.POSIXct("2011-09-06 08:00:00")+seq(0,1800,by=60))
df.2 <- data.frame(currency=rep("AUD-USD",121),
price=rnorm(121,50,3),
volume=rnorm(121,1e6,1e5),
datetime=as.POSIXct("2011-09-06 07:00:00")+seq(0,7200,by=60))
mydata <- rbind(df.1,df.2)
library(reshape2)
library(ggplot2)
gg <- melt(mydata, id=c(1,4))
ggplot(gg) +
geom_line(aes(x=datetime, y=value, color=currency)) +
stat_smooth(aes(x=datetime, y=value, color=currency),
formula=y~1,method="lm", se=F, linetype=2)+
facet_grid(variable~., scales="free")
修改以回应OP的评论。
ggplot(mydata, aes(x=datetime, y=price, color=currency)) +
geom_line()+
stat_smooth(formula=y~1,method="lm", se=F, linetype=2)+
facet_grid(currency~., scales="free")