Fra*_* P. 10 javascript r dygraphs
我正在使用dygraphs包绘制每周数据.dygraphs自动选择每周默认轴.但是,我希望有一种方法可以让默认轴(星期日)与我的数据(星期一)对齐.
# Required packages
library("magrittr")
library("dygraphs")
library("xts")
# Data
daily <- structure(c(4000, 5000, 3000, 7000, 2000, 5000, 7000,
2000, 3000, 6000, 5000, 9000, 2000, 2000, 2000,
7000, 9000, 2000, 1000, 13000), .Dim = c(10L, 2L), .Dimnames = list(
NULL, c("col1", "col2")), index = structure(c(1476032400,
1476637200, 1477242000, 1477846800, 1478451600, 1479056400, 1479661200,
1480266000, 1480870800, 1481475600), tzone = "Asia/Saigon", tclass = c("POSIXct",
"POSIXt")), class = c("xts", "zoo"), .indexCLASS = c("POSIXct",
"POSIXt"), tclass = c("POSIXct", "POSIXt"), .indexTZ = "Asia/Saigon", tzone = "Asia/Saigon")
# Graph
dygraph(daily, main = "Stackoverflow") %>%
dyRangeSelector() %>%
dyOptions(useDataTimezone = TRUE)
Run Code Online (Sandbox Code Playgroud)
您可以尝试使用自定义ticker函数,该函数从数据的第一天开始,每 7 天打勾一次。
这是一个受该函数启发的示例dygraph-tickers.js Dygraph.getDateAxis:
dygraph(daily, main = "Stackoverflow") %>%
dyRangeSelector() %>%
dyAxis("x",ticker='function(start_time, end_time, pixels, opts, dygraph, vals) {
var formatter = opts("axisLabelFormatter");
var ticks = [];
var t;
//spacing is a week in milliseconds
var spacing = 1000 * 604800;
for (t = start_time; t <= end_time; t += spacing) {
ticks.push({ v:t,
label: formatter(new Date(t), Dygraph.WEEKLY, opts, dygraph)
});
}
return ticks;
}') %>%
dyOptions(useDataTimezone = TRUE)
Run Code Online (Sandbox Code Playgroud)