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

x.axis date and real date does not match in dygraph

这是我在 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)c("1929-12-31","2016-12-31") 来至少显示该点的确切年份,但没有任何改变仍然。

任何想法都会有所帮助。

您的测字仪工作正常。你的印象是它得到了错误的年份,但它只是在绘制一年的最后一天。如果你放大,你会看到点在左边一点点。

如果你想让你的积分在年初被抽取,你需要相应地转换你的索引。

所以如果我们调用 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