14

力のレイアウトを使用して、重み付けされていない有向ネットワークを表しています。私のインスピレーションは次の例から来ています: http://bl.ocks.org/mbostock/1153292

ここに画像の説明を入力

私の問題は、私の場合、ノード間にはるかに多くのリンクがあり、常に同じである固定の linkDistance を与えることが私のレイアウトにとって非常に大きな制約であると感じていることです。

linkDistanceグラフ内のリンクの交差を減らすのに役立つ場合、リンクが長くなるように動的に設定することは可能ですか?

4

2 に答える 2

14

ドキュメントから:

force.linkDistance([距離])

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

レイアウトの実行中、リンク距離は引き続き調整されることに注意してください。linkStrength()設定も役立つ場合があります。

于 2013-05-15T14:32:50.450 に答える
7

わずか2ステップ:

Step1: 次のようにメイン json にパラメーターを追加します。

{ソース: "Microsoft"、ターゲット: "Amazon"、タイプ: "ライセンス"、値: 60}、{ソース: "Microsoft"、ターゲット: "HTC"、タイプ: "ライセンス"、値: 60}, {ソース: "Microsoft"、ターゲット: "HTC" : "サムスン", ターゲット: "アップル", タイプ: "スーツ",値:60},

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

.linkDistance(function(d) { return  d.value; }) 
于 2014-05-12T07:12:35.827 に答える