Crossfilter + dc.js DataTable排序不正确

多纳尔·拉菲蒂

我正在将基本dc.js DataTable与我的CrossFilter数据一起使用,并尝试通过我的Value属性(它是一个数字)对它进行排序,但是我得到的数据是奇数排序的。

这是显示问题的JSFiddle- http://jsfiddle.net/DonalRafferty83/97mwyp0u/4/

我将CrossFilter的尺寸设置如下:

var ndx = crossfilter(data);

var parseDate = d3.time.format("%d/%m/%Y").parse;

data.forEach(function(d) {
    d.date = parseDate(d.InDate);
    d.Value = parseFloat(d.Value).toFixed(2);
});

var dateDim = ndx.dimension(function(d) {return d.date;});
var typeDim = ndx.dimension(function(d) {return d.Type;});

然后,按如下所示创建DataTable:

var datatable   = dc.dataTable("#dc-data-table");
datatable
    .dimension(dateDim)
    .group(function(d) {return "";})
    .size(data.length)
    // dynamic columns creation using an array of closures
    .columns([
        function(d) { return d.Id; },
        function(d) {return d.Indate;},
        function(d) {return d.Type;},
        function(d) {return d.Category;},
        function(d) {return d.Value;}
    ]).sortBy(function(d) {
        return d.Value;
    })
    .order(d3.descending);

这是排序的结果,因为您可以在4000.46之前订购99,这是不正确的:

排序不正确

这是CrossDilter / dc.js的已知问题吗?还是我做错了什么?也许我需要操纵我的数据以使其以正确的方式工作?

伊森·朱维特(Ethan Jewett)

.toFixed(2)返回一个字符串,因此您的sortBy函数正在对字符串进行排序。因此,在“ 4000.46”之前订购“ 99”是正确的。将您的sortBy函数切换为return +d.Value;(+会强制转换回数字)应该可以解决您的问题。

JSFiddle的固定版本:https ://jsfiddle.net/j9adz6bs/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在dc.js和crossfilter.js中使用堆积条形图过滤时,为什么我的饼图显示不正确的组?

dc.js中的自定义归约函数中的自定义排序crossfilter.js

Crossfilter / dc.js中的伪造组过滤

使用dc.js和crossfilter的面积图

Crossfilter 和 DC.js 中的平均值

Vue,Webpack,DC.js和最后的Crossfilter

我如何创建动态表-Crossfilter-dc.js

crossfilter + dc.js //相互包含的维度组

Crossfilter兼容的图表库/ DC.js替代品

在dc.js / crossfilter中对数组使用维度

使用crossfilter和dc.js绘制平均值

d3js(+ crossfilter / dc)箱线图性能

dc.js/crossfilter 中的百分比变化

如何提高dc-tableview.js(DC.js,Crossfilter,数据表,ajax)的性能?

dc.js Vue渲染图表不正确

crossfilter.js 与 dc.js 更新回调组更改图表

Crossfilter.js和dc.js条形图问题

如何将dc.js和crossfilter.js html页面放入Angular组件中?

如何使用crossfilter和dc.js在rowChart中显示“丢失”的行?

如何在dc.js / reductio / crossfilter中生成滚动的标准折线图

dc.js和crossfilter-根本不读取json

我可以基于crossfilter / dc.js中的交集(和)来过滤数据吗?

手动过滤后,DC.js + Crossfilter设置图表的活动项

如何使用Crossfilter和dc.js创建x轴范围组?

使用crossfilter / dc.js绘制面积归一化条形图的有效方法?

如何计算具有多个值数组的每个键的唯一值?/ DC.js-Crossfilter-Reductionio

如何绘制一个维度与另一个维度(使用dc.js,crossfilter.js)?包含一个gistup示例

crossfilter.js多维“维度”

在 dc.js 中排序热图