2

グラフ表現を作成しようとしていますが、データを整理する方法がわかりません。

現在、すべてのデータがグループにバインドされており、ノードを描画しています。

データにはエッジのリストが含まれていますが、ノードごとにエッジの数が異なるため、それらを描画する方法がわかりません。

var group = svg.selectAll("g").data(dataset).enter().append("g);

//this works

group.append("circle")
     .attr(...).attr(...).attr(...);

//what to do here? when I call group, it will loop through each node ONCE and append a path
//but I need it to append edges.length paths for each pass

group.append("path")
     .attr("d", function(d,i){

        //example of 1 line
        lineSeg = [];
        lineSeg.push({"x":d.x ,"y":d.y});
        lineSeg.push({"x":d.edges[1].x ,"y":d.edges[1].y});

        return line(lineSeg);

     });

編集:

//just to add dom structure, my goal is for it to be:

g:
   circle
   path1
   path2

g:
   circle
   path1
   path2
   path3

g:
   circle
   path1

etc...

関連するチュートリアル ページにリンクされている Lars。私にとっての鍵は、ネストされたデータ結合でした

var td = d3.selectAll("tbody tr")
.data(matrix)
.selectAll("td")
.data(function(d, i) { return d; }); // d is matrix[i]
4

0 に答える 0