Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/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
D3.js 在d3js中使用复杂数据结构_D3.js - Fatal编程技术网

D3.js 在d3js中使用复杂数据结构

D3.js 在d3js中使用复杂数据结构,d3.js,D3.js,我正在制作一个交互式折线图,从复杂的数据结构中捕获数据时遇到了问题 我传递了一组路径,它可以工作: path = [[{x:int,y:int},{x:int,y:int},{x:int,y:int}], [{x:int,y:int},{x:int,y:int},{x:int,y:int}], [{x:int,y:int},{x:int,y:int},{x:int,y:int}]] 但这是我正在使用的数据结构: data:[{ id: 0,

我正在制作一个交互式折线图,从复杂的数据结构中捕获数据时遇到了问题

我传递了一组路径,它可以工作:

 path = [[{x:int,y:int},{x:int,y:int},{x:int,y:int}],
        [{x:int,y:int},{x:int,y:int},{x:int,y:int}],
        [{x:int,y:int},{x:int,y:int},{x:int,y:int}]]
但这是我正在使用的数据结构:

data:[{
      id: 0, 
      image:[int values], 
      path:[{x:int,y:int},{x:int,y:int},{x:int,y:int}], 
      pixel:[int values]
      },
      id: 1, 
      image:[int values], 
      path:[{x:int,y:int},{x:int,y:int},{x:int,y:int}], 
      pixel:[int values]
      }]
我用标准的valueline函数制作了一个折线图:

var valueline = d3.line()
    .x(function(d) { return xScale(d.x); })
    .y(function(d) { return yScale(d.y); })
    .curve(d3.curveMonotoneX);

 chart.selectAll(".line-group")
    .data(path)
    .enter()
    .append("g")
    .attr("class", "line-group")
    .append("path")
    .attr("d", valueline)
我想将整个数据数组传递给d3js,函数valueline从数据数组中每个图像的路径键捕获x和y


有什么想法吗?谢谢

我最终使用了rioV8解决方案。
 chart.selectAll(".line-group")
    .data(data)
    .enter()
    .append("g")
    .attr("class", "line-group")
    .append("path")
    .attr("d", d => valueline(d.path))
我还从以下方面找到了另一种解决方法:


这并不能回答这个问题。若要评论或要求作者澄清,请在其帖子下方留下评论。-@AashishJ:这是一个问题的解决方案,Ricardo使用了相同的方法,但以一种奇怪的非D3方式
chart.selectAll(".line-group")
    .data(data)
    .enter()
    .append("g")
    .attr("class", "line-group")
    .selectAll(".lineChart")
    .data(function(d) { return [d.path] })
    .enter()
    .append("path")
    .attr("class", "lineChart")
    .attr("d",valueline)