dc.js/crossfilter - >如何在dc.js图表​​中排序数据(如行) - 升序x降序

use*_*596 1 sorting charts d3.js crossfilter dc.js

如何在dc.js图表​​中排序数据(如行) - 升序x降序

我想按指定的属性重新排序图表(行/列)(如'avg' - >升序)

我正在尝试使用".top()"......但没有成功

谢谢

以下草案jsfiddle - > ewr5Z/2 /

DJ *_*tin 12

您可以使用订购方法:

        chart.ordering(function(d){ return -d.value })
Run Code Online (Sandbox Code Playgroud)

如果您编写自定义缩减,则可以获得更大的灵活性:

        priceDimension  = ndx.dimension(function(d) {return d.part_number; });
        priceGroup = priceDimension.group().reduce(
            function (p, v) {
                ++p.count;
                p.sumPrice += v.price;
                p.avgPrice = p.sumPrice/p.count;
                return p;
            },
            function (p, v) {
                --p.count;
                p.sumPrice -= v.price;
                p.avgPrice = p.sumPrice/p.count;
                return p;
            },
            function () {
                return { count:0, sumPrice:0, avgPrice};
            });
    ....
    chart.ordering(function(d){ return d.value.avgPrice});
Run Code Online (Sandbox Code Playgroud)

如果您希望用户能够更改排序顺序,则需要构建一个排序按钮,以更改排序并重新呈现图表.