D3直方图 - 基于日期

ukm*_*keb 4 date histogram scale d3.js

我有一系列日期

["01/01/2001", "01/01/2001", "03/01/2001", "01/04/2001", "01/05/2001", "02/05/2001", "01/07/2001", "01/07/2001", "01/07/2001", "01/10/2001"]
Run Code Online (Sandbox Code Playgroud)

有些是重复的,没有特别的顺序,在不同的时间范围内(1周,43天,2年等).

我想要做的是产生一个直方图(或条形图),显示任意数量的桶中的"日期"计数(如20个桶).

如果存储桶中没有日期,则显示零和包含日期的存储桶的总数.

基本上就像这个例子:http: //bl.ocks.org/mbostock/3048450

但我没有显示随机的"秒",而是需要"约会".

喜欢:

日期直方图

我想我想将X比例域更改为我数据中的日期范围.

ukm*_*keb 8

所以解决方案就像@LarsKotthoff在评论中所建议的那样.

var x = d3.time.scale().domain([firstDate, lastDate]).range([0, width]);

var data = d3.layout.histogram()
        .bins(x.ticks(bins))  
        (values);

var formatDate = d3.time.format("%d/%m/%y");
var xAxis = d3.svg.axis()
            .scale(x)
            .orient("bottom")
            .tickFormat(formatDate);
Run Code Online (Sandbox Code Playgroud)

  • 您能否粘贴用于解决此问题的完整代码?在生成直方图之前,您不清楚之前定义的变量.谢谢! (4认同)
  • 我发现计算条的宽度有点奇怪,因为在直方图布局生成`x`值的数据数组中是一个日期但是`dx`值是毫秒数.对于条的宽度,我使用:`x(new Date(data [0] .x.getTime()+ data [0] .dx))` (2认同)