「ノード」と「ライン」を使用したD3セットアップがあります。グラフが最初に表示されるとき、グラフは中央に落ち着くまで重力で跳ね返ります。「バウンス」のような効果なしに、中央に自動的に表示されるようにする方法を知っている人はいますか?
PS私は力のレイアウトを使用しています
「ノード」と「ライン」を使用したD3セットアップがあります。グラフが最初に表示されるとき、グラフは中央に落ち着くまで重力で跳ね返ります。「バウンス」のような効果なしに、中央に自動的に表示されるようにする方法を知っている人はいますか?
PS私は力のレイアウトを使用しています
startを呼び出すと、冷却パラメータalphaがリセットされます。レイアウトが解に収束するにつれてアルファは指数関数的に減衰し、CPUの浪費を避けるために停止します。開始時にジッターは発生しません(ゼロ除算を回避するために必要な同時ノードを除く)。ただし、相反する力と幾何学的な制約(リンク)がある場合は常に、開始時にレイアウトが調整されることを期待するのが自然です。
このバウンスを回避したい場合は、グラフを永続的にホットに保つ必要があります(たとえば、を呼び出すことによってd3.timer(function() { force.resume(); })
)。または、アルファパラメータを手動で調整して、瞬時ではなく徐々に再加熱するなど、別のことを行う必要があります。
編集:2.8.xでは、起動時に強制レイアウトを同期的に実行することで、最初のバウンスを完全に回避できます。例: http: //bl.ocks.org/1667139
私が以前に使用した別の戦略は、各ノードの半径を最初のゼロから徐々に増加させることです。たとえば、50または100のフォースティックです。one.orgデータサイトのDorlingカルトグラムで、それがどのように見えるかを確認できます(Protovisでは、d3でも同じように動作します)。