【问题标题】:Uniformly-spaced histogram bins with dc.js?使用 dc.js 的均匀间隔直方图箱?
【发布时间】:2015-06-08 22:00:34
【问题描述】:

Mike Bostock 使用以下 sn-p 为直方图生成均匀间隔的 bin:

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

source

有什么方法可以让这个项目适应使用 dc.js 和 crossfilter.js 的项目吗?

本质上,我想动态生成箱,然后使用图表过滤特定属性。完全是新手。任何指导将不胜感激!

【问题讨论】:

    标签: javascript d3.js dc.js crossfilter


    【解决方案1】:

    dc.js 通过交叉过滤器支持直方图。为您的条形图使用如下所示的组:

    var binwidth = 0.2;
    var dim = ndx.dimension(function(d) { return d.x; });
    var group = dim.group(function(d) { return binwidth * Math.floor(d.x/binwidth); });
    

    这告诉 crossfilter 使用键 binwidth 分开。

    并用这些单位初始化条形图:

    chart.xUnits(dc.units.fp.precision(binwidth));
    

    【讨论】:

    • Peharps 缺少 binwidth。 var group = dim.group(function(d) { return binwidth*Math.floor(d.x/binwidth); });
    • 我编写了 2 个关于如何编写阈值直方图的示例。它说明了应该在维度函数中而不是在组函数中编码阈值(您可能需要):jsfiddle.net/PBrockmann/dwoycwrp(在维度上设置的阈值)与 jsfiddle.net/PBrockmann/ma3wr55k(阈值集)进行比较组上)。如果您要检索已在第一个和最后一个 bin 中进行阈值处理的值,则第一个是正确的。
    • @Gordon,是否可以计算不同变量的总和(dim.group.reduceSum)而不是计数(dim.group)?
    • @anmolkoul,当然,为什么不呢?所有这些步骤都是在归约之前进行的,因此您应该能够对所需的组应用任何归约。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多