0

私はd3.jsの初心者です

ノードにラベルを追加しようとしています。しかし、私が試したものはすべて機能していません..私のコードはここにあります:

http://jsfiddle.net/Ymtg5/1/

http://bl.ocks.org/christophermanning/4208494 と強制有向グラフのマッシュアップです。基本的に私はjsonファイルを読んで、上記のグラフを作成しています。http://bl.ocks.org/mbostock/950642とまったく同じようにノードにラベルを追加したい これらの行を追加してみました

node.append("text")
      .attr("dx", 12)
      .attr("dy", ".35em")
      .text(function(d) { return d.name });

しかし、うまくいきません。どんな助けでも。提案..ありがとう

4

1 に答える 1

0

おそらく問題は、JSON クラスに「名前」がないことです。

そうです、これは問題ではありませんでした

コードの関連部分は次のとおりです。

var node = svg.selectAll("path.node")
    .data(nodes)
    .enter().append("path").attr("class", "node")
    .style("fill", function(d) { return fill(d.value); })
    .style("stroke", function(d) { return d3.rgb(fill(d.value)).darker(); })
    .call(force.drag);

 // HERE should go node manipulation to add the text

force
    .nodes(nodes)
    .links(links)
    .on("tick", tick)
    .start();

function tick() {

  //node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; );
  node.attr("d", function(d) { return clip({"type":"F {"type":"Point","coordin...         
  link.attr("d", function(d) { return clip({"type":"Feature","geometry":{ ...

ノードにラベルを追加する場合は、ノード操作が必要な場所にコメント行を挿入しました。あなたはティック関数の中でそれをやっています(まあ、あなたはそこでやろうとしていると思います、コードはフィドルにありません)、その関数はノードの属性の操作のためだけであるべきです。テキストを作成してノードに追加する場所は、関数の外にあります。

于 2013-02-26T06:27:21.667 に答える