这是我在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将每个日期识别为下一年的最近日期,这将使每个点的日期时间为第二年的第一天。
正如我在代码中所显示的那样,我尝试使用valueRange
或c(1929,2016)
的{{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