我有一个数据集" bc"用2285观察两个变量:"日期"和"价格"。
tsbc <- ts(bc)
我尝试将时间序列对象创建为:
autoplot(tsbc)
然后,我用了:
from pubnub.pubnub import PubNub
答案 0 :(得分:2)
以下是基于xts
的解决方案:
library(ggplot2)
# Generate a dataset
set.seed(1)
bc <- data.frame(Date=seq(as.Date("2016/1/1"), as.Date("2017/12/14"), "days"),
Price= cumsum(rnorm(714)))
# 'data.frame': 714 obs. of 2 variables:
# $ Date : Date, format: "2016-01-01" "2016-01-02" ...
# $ Price: num -0.626 -0.443 -1.278 0.317 0.646 ...
library(xts)
tsbc <- xts(bc$Price, order.by=bc$Date)
autoplot(tsbc)
否则,使用ts
:
tsbc <- ts(bc$Price, start=c(2016,1), frequency=365)
autoplot(tsbc) + scale_x_yearmon(n=5)
答案 1 :(得分:2)
问题是您如何创建时间序列对象tsbc
。你实际上正在创建两个时间序列。由于日期只是带有class属性的数字,因此当您调用ts
时,它们会失去属性。这就是autoplot
为Date
绘制一条线的原因,它绘制了代表相应日期的双打(有关详细信息,请参阅?base::Dates
)。这显然不是你想要的。请参阅@ Marco的答案,了解如何构造ts
对象。
但是,你甚至不需要这样做。为什么不简单
library(ggplot2)
ggplot(bc, aes(Date, Price)) + geom_line()