D3.js使用数据数组

时间:2017-01-11 21:38:41

标签: javascript d3.js svg

我有一个行路径,它接受一个如下数组的数组:

[[{x:0,y:1},{X:3,y:4],[{x:0,y:2},{x:3,y:6},{x:8,y:10}]]

我的直线路径如下:

this.line = D3['line']()
            .x(function (d) {console.log(d); return d.x; })
            .y(function (d) {console.log(d); return d.y; });

这很好用,现在我想修改我的数据,这样我就可以包含每个数据的填充和文本,所以我将数据格式改为这样。

[{"data":[{x:0,y:1},{X:3,y:4]}
,"fill":"red","txt":"test","x":"0","y":0},
{data:[{x:0,y:2},{x:3,y:6},{x:8,y:10}],"fill":"red","txt":"test","x":"0","y":0}
]

然后我将行路径修改为如下所示:

this.line = D3['line']()
            .x(function (d) {console.log(d); return d.data.x; })
            .y(function (d) {console.log(d); return d.data.y; });

看起来因为数据是一个对象不是一个数组,所以它不会为该路径获取循环。我检查了DOM,路径确实得到了创建,只是路径数据永远不会填充它。代码从未在obj:[]中使用它执行行路径。我如何将数组传递给它?

由于

1 个答案:

答案 0 :(得分:1)

好吧,在弄乱了一堆不同的东西之后,我就是这样做的,我必须将d.data传递给这样的行函数。

.attr("d",function(d){return self.line(d.data)})