【问题标题】:Calendar Heatmap dc.js日历热图 dc.js
【发布时间】:2014-07-11 15:53:30
【问题描述】:

我一直在使用链接图表的仪表板来可视化骑行数据,并希望添加日历/热图作为最终图表。我在 dc.js Google Group 中查看过类似的questiondiscussion,但看起来两者都已经冷了。

我想沿 x 轴显示一周中的几天,沿 y 轴显示一天中的小时,并用颜色表示在给定的一周中的给定日期有多少人骑车小时。也就是说,我希望热图中对应于星期三下午 12 点的单元格表示在任何星期三下午 12 点(其他所有日期和时间以此类推)骑行的骑手总数。主要问题是我如何在交叉过滤器中拆分变量。 x 轴看起来正确,但 y 轴当前显示的是 NaN。

我一直在尝试遵循 this one 之类的示例,但主要问题是这些示例源自包含具有要映射到单元格颜色的预先计算值的列的数据。我需要简单地计算满足特定标准的记录数量(即所有星期四上午 10 点有多少骑手?)并将这些值映射到颜色。任何帮助,将不胜感激。代码和代表数据子集here,即here

【问题讨论】:

    标签: javascript dc.js crossfilter


    【解决方案1】:

    我相信

    d.hour = d3.time.hour(d.dd);
    

    当您实际需要的是数字时,会导致将 Date 对象分配给 d.hour。然后将该对象转换为 valueAccessor 中的一个数字,这会导致 NaN 问题。也许尝试将其更改为

    d.hour = +d.dd.getHours();
    

    看看这是否能解决 NaN 问题?

    【讨论】:

    • 这仍然会导致沿 y 轴的 NaN。但是,我现在可以更轻松地构建小时组,这很有帮助。我假设我的变量被发送到图表中的.group() 方法不正确。
    • 有一些工作。我只需要从xyDim 变量中定义一个分组变量xyDimGroup,并将其发送到.group() 图表方法。如果没有您指出 .getHours() 函数,就不可能实现。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-28
    • 2015-12-05
    • 2023-03-23
    • 2017-03-27
    相关资源
    最近更新 更多