2012-04-23 26 views
2

D3でJSONファイルのデータを取得し、ノードの1つがダブルクリックされると、データベースを検索してそのノードにリンクし、新しいデータをそのノードに追加しようとするリンクおよびノー​​ド配列を更新する。ノードがリンクなしで追加されてもうまく動作するようですが、xy座標へのリンクはNaNになります。あなたがいずれかのノード上でダブルクリックするだけです、ここで効果を見ることができます:Force-DirectedレイアウトのNaN D3.jsに追加

http://blockses.appspot.com/2432083

答えて

7

私はボストックからAPPEND例で力指向に従うようにコードを書き換えることで、これを修正しました。この問題は、誰かが同様の問題に遭遇した場合に備えて、ノードとリンク配列を上書きしてデータをプッシュするのではなく、上書きするときに発生するようです。

更新されたコードは、元の要旨にあり、ここで見ることができます:

http://blockses.appspot.com/2432083

+3

ただ、この問題を持っている人のために、常にリンクを追加する前に、レイアウトを停止します。内部ティック計算では、リンクと同じ長さを持つと想定される他の配列が使用されます。新しいリンク上で計算すると、内部状態は「未定義」になり、新しいリンクのソースノードとターゲットノードの 'd.x'と' d.y'に 'NaN'が伝播します。これは 'force.start()'を呼び出すときにすべて再整列されます。したがって、何度も実行する前にこれを確実に行うには、データを追加する前にレイアウトを停止してください。 –

関連する問題