将X值映射到d3.time.scale()中的日期

时间:2014-10-06 13:18:36

标签: javascript d3.js

我有一个d3图表,可以在x轴上绘制出许多矩形。

x轴表示时间轴,我目前使用d3.time.scale将每个数据点的日期映射到x轴上的点。这一切都很直接。

var xAxis = d3.time.scale();
data.forEach(function(d){
  d.xValue = xAxis(d.startDate);
});

然后使用css transform中的特定xValue绘制出来。

现在,如果我想根据给定的x值获取日期(例如,当用户点击图表时我想检查x值对应的日期)我还没有找到如何使用我创建的xAxis变量执行此操作。

我怎样才能做到这一点?我是否必须使用元素的xAxis.domain()width来计算所选日期?

1 个答案:

答案 0 :(得分:1)

在评论中接受Lars Kotthoff的回答;

d3.time.scale().invert()就是答案。