gpt4 book ai didi

javascript - 对 d3.v4 中的嵌套数据进行排序

转载 作者:行者123 更新时间:2023-11-28 05:05:34 25 4
gpt4 key购买 nike

目前正在学习 d3(对 JavaScript 来说也是新手),并且在让我的嵌套数据按“汇总”值排序时遇到了一些麻烦。这是我的代码片段:

    d3.csv("flat_data.csv", function (data) {      

var nested_data = d3.nest()
.key(function(d) { return d.Field1; })
.rollup(function(g) {
return d3.sum(g, function(v) {return v.Field2; });
})
.entries(data)
.sort(function(a,b) {return d3.descending(a.values,b.values);});

console.log(nested_data);

尽我所能,nested_data 顽固地未排序(没有抛出特定错误)。我希望数组条目(数据)按汇总函数计算的值(正确的)进行排序。看过一些关于 SO 的问题,他们至少有一个推荐了上述语法。我显然错过了一些东西 - 有人可以帮忙吗?谢谢!

编辑:

所以在查阅 API 引用资料时,也许排序方法是旧的?看起来有一个 Nest.sortValues(comparator) 方法,如果我能为我的代码找出正确的语法,我会在这里发布,因为它没有立即工作,但也许可以找到正确的方法来使用它(随意让不过我知道!)再次感谢

编辑2:

完全被这个迷惑了!尝试使用 http://bl.ocks.org/phoebebright/raw/3176159/ 中的语法除其他外,无济于事。如果有人知道如何让它发挥作用,那就太棒了!谢谢

编辑3:

sortValues 在这种情况下不适合,因为它对叶子进行排序,而在汇总函数的情况下只有一个叶子。我认为谜团已按照下面的“答案”解决了。谢谢。

最佳答案

我希望可以回答我自己的问题 - 但我一直在使用第一个答案:

d3.js sorting by rollup field

这不起作用。如果这确实对任何人有帮助,只需将 .values 更改为 .value 即可:

            .sort(function(a,b) {return d3.descending(a.value,b.value);});

修复了问题,嵌套汇总数据已排序。谢谢

关于javascript - 对 d3.v4 中的嵌套数据进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41783718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com