我有以下结构:
'data.frame': 240 obs. of 3 variables:
$ Date : Date, format: "1998-01-01" "1998-02-01" "1998-03-01" ...
$ rollDE: Time-Series from 1 to 240: 0.00289 0.00992 -0.00424 0.07958 -0.035 ...
$ DE$DE : num 0.00289 0.00992 -0.00424 0.07958 -0.035 ...
我在一个图中为多列的ggplot实现了以下代码。
> ggplot() +
+ geom_line(data = yy, aes(x= Date, y = x$`rollDE`, color = "rollingmeanDE")) +
+ geom_line(data = yy, aes(x = Date, y = x$`DE$DE`, color = "DEreturn")) +
+ xlab('Date') + ylab('percent.change')
但是,错误如下。
Don't know how to automatically pick scale for object of type ts. Defaulting to continuous.
我已尝试转换$rollDE
,但失败了。请转换它或任何其他解决方案的任何评论?
答案 0 :(得分:1)
使用read.zoo
转换为动物园并使用autoplot.zoo
。省略facet = NULL
以获取两个数据列的单独窗格。在最后的注释中使用yy
:
library(ggplot2)
library(zoo)
autoplot(read.zoo(yy), facet = NULL) + xlab("Date") + ylab("percentage change")
以下是yy
的可重现版本。最后一列已经加倍,因此它与之前的列没有相同的值。
yy <- data.frame(
Date = as.Date(c("1998-01-01", "1998-02-01", "1998-03-01")),
rollDE = ts(c(0.00289, 0.00992, -0.00424)),
"DE$DE" = 2*c(0.00289, 0.00992, -0.00424))