2016-07-11 10 views
0

私はD3の強制グラフのパフォーマンスを向上させようとしています。現在はSVG要素を使用していますが、ノード数が500に達して〜2000にリンクするとすぐに使用することはほとんど不可能になります。私は、グラフをレンダリングする別の方法を検討しています。キャンバス上の画像を持つD3強制有向グラフ

キャンバスは素晴らしい選択肢であるように思わ: http://bl.ocks.org/mbostock/3180395

しかし、それはここで行うのとキャンバス上のノードに画像を添付することが可能である: http://bl.ocks.org/eesur/be2abfb3155a38be4de4

おかげ

答えて

1

あなたが使用することができますがdrawImage()。ここにいるsome documentation

そして、ええ、キャンバスは良いアプローチであるか、スピードアップしています。力のレイアウト自体は、どのようにレンダリングしても、CPUサイクルの束を必要とし、あなたの数値はすでにかなり高いです。また、500本の円をキャンバスに60fps(fps = 1秒あたりのフレーム数)でレンダリングすることは可能ですが、2000年のレンダリングをレンダリングすると、すでにスローダウンが開始されます。それでも、SVGよりはるかに良いでしょう。

かどうかを知るために - とどのくらい - あなたの最適化は、パフォーマンスを向上している、stats.js

+0

@andreybavtのようなものを使用することを検討して、meetamitのアドバイスに加えて、私はd3v4を採用お勧めします、それは良く含まれています[キャンバスのサポート](http://bl.ocks.org/mbostock/95aa92e2f4e8345aaa55a4a94d41ce37)。 – Mark

関連する問題