我需要绘制一个折线图,其中x轴的刻度表示时间,以毫秒为单位。
对于x-scale,我使用d3.time.scale()
var xScale = d3.time.scale()
.range([0, width])
x轴看起来像:
var xAxis = d3.svg.axis()
.scale(xScale)
//.ticks(d3.time.second, 1)
.orient("bottom")
.tickFormat(d3.time.format("%H:%M %L"));
但x轴上的值/滴答未按预期生成。
x轴的数据是日期对象,它们包含以下值(样本数据)
13:25:6 794 (%H:%M%S %L)
13:25:6 898
13:25:6 994
13:25:7 95
13:25:7 194
13:25:7 295
13:25:7 395
13:25:7 495
13:25:7 595
13:25:7 710
13:25:7 795
13:25:7 895
13:25:7 995
13:25:8 95
13:25:8 195
13:25:8 294
13:25:8 395
13:25:8 495
13:25:8 594
13:25:8 795
但是,如果我采用线性比例d3.scale.linear()
生成的滴答符合预期的系列。
对于使用具有毫秒细节的数据使用time scale
的正确方法是什么。
如何以秒为单位的滴答间隔:毫秒?
修改
另外,如何每隔几毫秒说每隔500毫秒就有一个滴答声?
有一个API d3.time.second
,但没有d3.time.millisecond
。我该如何添加一个?
答案 0 :(得分:4)
以秒为单位的间隔:毫秒表示,您可以尝试此
.tickFormat(d3.time.format("%S %L"));
答案 1 :(得分:1)
(删除了过时的上一个答案)
我针对d3项目为此创建了一个问题,并已修复:https://github.com/mbostock/d3/issues/1529
这里可以看到一个例子:http://bl.ocks.org/mbostock/6618724