javascript - D3 时间和日期直方图

标签 javascript d3.js histogram date-formatting

我尝试主要使用时间和日期数据制作直方图,这些数据以以下格式在 json 文件(以及其他信息)中提供:2014-03-01 00:18:00。我看过http://bl.ocks.org/mbostock/3048450举个例子,但我还没有成功破解它。关键部分似乎是这样的:

    var data = d3.layout.histogram()
        .bins(x.ticks(20))
        (dataset.timestamp);

当我在浏览器中查看代码时,它给出“TypeError:数据未定义”,并引用 d3.v3.js 第 5878 行。

假设我修复了该错误,下一个可能出错的地方是轴格式:

    var formatDate = d3.time.format("%y-%m-%d %h:%m:%s");

    var xAxis = d3.svg.axis()
        .scale(x)
        .orient("bottom")
        .tickFormat(formatDate);

格式语法是否与我的时间和日期格式正确对应?

最佳答案

我认为直方图布局不接受非数字输入(我可能是错的)。一种选择是通过解析和使用 getTime() 将日期转换为自 1970 年以来的毫秒数:

var formatDate = d3.time.format("%Y-%m-%d %H:%M:%S");

var data = d3.layout.histogram()
    .bins(x.ticks(20))
    .value(function(d) {return formatDate.parse(d.timestamp).getTime()})
    (dataset);

您需要确保 x 刻度(如 x.ticks(20) 中)具有基于毫秒数据的域。

关于javascript - D3 时间和日期直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23355648/

相关文章:

javascript - Intro.js 2页然后返回首页

javascript - selection.data 返回不同类型的对象

r - 将图例添加到具有不同类型美学的 ggplot 直方图

svg - 如何防止 SVG 标记(箭头)继承路径的笔画宽度?

javascript - 了解 D3 使用嵌套内容进入、更新和退出选择

python - 在同一图上绘制多个直方图的问题

matlab - 如何在 Matlab 中减小直方图上条形的宽度

javascript - createUserWithEmailAndPassword 后的 Firebase 错误 auth/admin-restricted-operation

javascript - 从浏览器中粘贴事件之外的剪贴板读取文件

javascript - 如何使用 ui.router 和 ASP.NET MVC 在 AngularJS 中处理页面刷新