2013-05-15 10 views
14

私は有向非重み付けネットワークを表すために強制レイアウトを使用しています。 http://bl.ocks.org/mbostock/1153292d3.jsの強制レイアウトで動的linkDistanceが可能ですか?

enter image description here

私の問題は、私の場合にはそこに非常に多くのノード間のリンクと私は感じているが、常に同じである固定linkDistanceを、与えることであるということです:私のインスピレーションは、次の例から来ています私のレイアウトには非常に大きな制約があります。

ダイナミックなlinkDistanceを設定して、グラフ内のリンクの交差を減らすのに便利な場合は、リンクの長さが長くなるように設定できますか? the documentationから

答えて

14

force.linkDistance([距離])

距離が指定されている場合、指定された値にリンクされたノード間の目標距離を設定します。 distanceが指定されていない場合は、レイアウトの現在のリンク距離を返します。デフォルトは20です。distanceが定数の場合、すべてのリンクは同じ距離になります。 それ以外の場合、距離が関数である場合、関数はリンクとそのインデックスに渡される各リンク(順番に)に対して評価され、このコンテキストはフォースレイアウトとして使用されます。関数の戻り値を使用して各リンクの距離を設定します。この関数は、レイアウトが開始されるたびに評価されます。通常、距離はピクセルで指定します。ただし、単位はレイアウトのサイズに対して任意です。

リンク距離は、レイアウトの実行に合わせて調整されます。また、linkStrength()という設定が役立つ場合もあります。

+0

これは、アルゴリズムの実行中にlinkDistanceが変化していることを意味します。私はそれを知らなかった。 1と等しいlinkStrengthは、ノード間の距離が変化しないことを意味しますか? –

+0

いいえ、フォースレイアウトは、他の制約を満たすために常に(少なくとも潜在的に)距離を調整します。 –

+1

linkStrenghtの意味はなんですか?私は "剛性"が何であるかを理解することはできません。 –

6

わずか2つのステップ:

ステップ1:次のようにメインJSONにパラメータを追加します。

{ソース: "マイクロソフト"、ターゲット: "アマゾン"、種類: "ライセンス"、値:60} 、 {ソース: "Microsoft"、ターゲット: "HTC"、タイプ: "ライセンス"、値:60}、 {ソース: "Samsung"、ターゲット: "Apple"、タイプ: "suit"、値:60} 、

ステップ2:メソッドを受け入れるようにリンク距離を更新します。

関連する問題