x.axis日期和实际日期在dygraph中不匹配

时间:2017-11-21 18:15:08

标签: r dygraphs

这是我在R中使用dygraph的情节:

http://rpubs.com/victordongy/332717

显然,x.axis与每个点的实际日期不匹配,数据集e_n如下:

             ratio_en ratio_con_en ch_oil_manu_p ch_mineral_p ch_oil_gas_p
1929-12-31 0.03622237   0.04397706            NA           NA           NA
1930-12-31 0.04227732   0.04880694           NaN          NaN          NaN
1931-12-31 0.04754198   0.05297158           NaN          NaN          NaN
1932-12-31 0.05634319   0.06386555           NaN          NaN          NaN
1933-12-31 0.05670123   0.06643357           NaN          NaN          NaN
1934-12-31 0.05018593   0.06137725           NaN          NaN          NaN 

我的R代码是:

dygraph(merge(e_n$ratio_en,e_n$ratio_con_en), main = "Ratio of Energy Investment over GDP") %>% 
    dyAxis("x",valueRange = c(1929:2016)) %>%
    dyAxis("y", label = "Ratio")

问题在于,由于日期时间设置为以12-31结束,所以我认为dygraph将每个日期识别为下一年的最近日期,这将使每个点的日期时间为第二年的第一天。

正如我在代码中所显示的那样,我尝试使用valueRangec(1929,2016)的{​​{1}}来至少显示该点的确切年份,但没有任何改变。

任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:0)

您的dygraph工作正常。你的印象是错误的一年,但它只是绘制了一年中的最后一天。如果你缩放,你会发现左边的点是一点点。

如果您希望在年初绘制积分,则需要相应地转换索引。

因此,如果我们致电data_xts您的时间序列。

data_xts <- e_n[,c("ratio_en","ratio_con_en")]

index(data_xts) <- as.Date(paste(format(index(test),"%Y"),"01/01",sep="/"))

例如,我们将1929-12-31转换为1929-01-01