Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3.js使用数据数组绘制线路径_Javascript_D3.js_Svg - Fatal编程技术网

Javascript D3.js使用数据数组绘制线路径

Javascript D3.js使用数据数组绘制线路径,javascript,d3.js,svg,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; }); this.line = D3['li

我有一条线路径,它接受一个数组中的一个数组,如下所示:

[[{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; });
this.line = D3['line']()
            .x(function (d) {console.log(d); return d.data.x; })
            .y(function (d) {console.log(d); return d.data.y; });
我的线路路径如下所示:

[[{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; });
this.line = D3['line']()
            .x(function (d) {console.log(d); return d.data.x; })
            .y(function (d) {console.log(d); return d.data.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}
]
.attr("d",function(d){return self.line(d.data)})
然后修改线路径,使其如下所示:

[[{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; });
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:[]中执行行路径。如何通过数组到达它


谢谢

好的,在搞乱了一堆不同的东西之后,我就是这样做的,我必须像这样将d.data传递到line函数中

[{"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}
]
.attr("d",function(d){return self.line(d.data)})