javascript - 如何在 d3 中为日期时间刻度设置正确的域

标签 javascript datetime d3.js

我正在尝试使用以下数据构建散点图:

[
{"frequency": 10, "date": "2014-01-01"},
{"frequency": 20, "date": "2014-01-02"},
{"frequency": 30, "date": "2014-01-03"}
]

我在 x 轴上绘制“日期”,在 y 轴上绘制频率。我在 x 轴上使用“d3.time.scale”。问题是比例和刻度从原点开始在 x 轴上,因此我得到的绘图从 y 轴上开始。

为了解决这个问题,我尝试将前一天和后一天,即“2013-12-31”和“2014-01-04”添加到x轴域(使用“d3.time.day.偏移”函数)。

如果给定时间序列以天为间隔,则上述代码有效。如果我的数据以月为间隔,如下所示:

 [
{"frequency": 10, "date": "2014-01-01"},
{"frequency": 20, "date": "2014-02-02"},
{"frequency": 30, "date": "2014-03-03"}
]

上面的代码将不起作用。我必须改用“d3.time.month.offset”函数。

有没有办法知道给定时间序列的间隔并使用适当的偏移量。 (即“d3.time.month.offset”、“d3.time.year.offset”、“d3.time.day.offset”等)。

谢谢

最佳答案

我遇到了类似的问题,但我认为这可能有用:http://jsfiddle.net/robdodson/KWRxW/

var x = d3.time.scale() .domain([new Date(data[0].date), d3.time.day.offset(new Date(data[data.length - 1].date), 1)]) .rangeRound([0, 宽度 - 边距.左 - 边距.右]);

此外,Mike 在此处列举了日期/时间偏移:https://github.com/mbostock/d3/wiki/Time-Intervals

:)

关于javascript - 如何在 d3 中为日期时间刻度设置正确的域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25284256/

相关文章:

javascript - 日期类型不符合谷歌图表要求

JavaScript 不会从特定数组列表中随机选择名称

javascript - 使用 jquery 刷新 php 并重新加载图像

sql-server - 是否存在一种方法来验证像 'Abr 21 2010 12:00AM' 这样的字符串是日期时间还是转换为日期时间之后?

c# - 前后端同步日期格式

javascript - 检测是否加载了外部脚本

Javascript 将 DateTime 转换为 "______ seconds/minutes/hours/months ago"

javascript - d3.js 强制定向布局受形状约束

javascript - 如何设置下拉列表中显示的默认值?

javascript - 使用 d3.js 计算平均 json