对 d3.js 路径的数据进行排序

Posted

技术标签:

【中文标题】对 d3.js 路径的数据进行排序【英文标题】:Sort data for d3.js path 【发布时间】:2012-11-18 16:29:42 【问题描述】:

我想用 d3.js 创建一个路径,其中包含 x 轴的日期。这工作得很好,但我的问题是,我的 json-object 没有排序,所以路径不正确:

我找不到对我的数据进行排序的函数 - 还是我必须自己编写一个?如果是,我会尝试,但如果还有其他可能性.. ;)

            var line = d3.svg.line()
                .interpolate("linear")
                .x(function(d)  return x(d.finished_at); )
                .y(function(d)  return y(d.result); );

            svg.selectAll("path")
                .data(data)
            .enter().append("path")
                .attr("class", "line")
                .attr("d", line(data));

有人知道吗?谢谢!

【问题讨论】:

【参考方案1】:

你看过 d3.ascending 吗? https://github.com/mbostock/d3/wiki/Arrays#wiki-d3_ascending

或者你可以这样做......

Sorting a selection in d3.js disturbs the data-join

【讨论】:

感谢您的回复。我想我以前没有这种感觉;)现在我只是在开头写了一个很容易排序的函数:data.sort(function(a, b) return d3.ascending(a.finished_at, b.finished_at); ); 是的……在玩 d3.js 时,我也花了几天时间才理解 API。

以上是关于对 d3.js 路径的数据进行排序的主要内容,如果未能解决你的问题,请参考以下文章

D3图表绘制

如何通过D3.js中的JSON文件解析按键对对象进行排序[重复]

如何在 d3.js 中拖动路径

使用 D3 的路径生成器。如何为他们分配数据?

D3 JS中的折线图路径未正确显示

用新的替换 d3.js 路径转换?