2012-09-04 55 views
10

我在找一個可以做圖形佈局的Javascript庫/引擎。 (當我說佈局時,我的意思是邏輯上很好地定位頂點。)我正在使用的圖形都是m-ary樹。 M通常不超過5或6,但在某些情況下可能會更大。Javascript圖形佈局引擎

我確實有一些我現在使用的Graphviz的節點程序,它的功能非常完美。問題是,在運行Web應用程序時,每次我想要佈局時都必須向服務器發送請求。最好是,我想用Javascript編寫一些可以在客戶端快速運行的東西。它所需要做的就是提供佈局信息(相對定位和什麼)。我不需要它畫到一個畫布或使用SVG或任何東西,我感興趣的是佈局。

類似jQuery或RaphaelJS的庫使用對我來說很好。我會和它一起工作。我只是尋找一些東西來加速一些事情。

此外,我會考慮編寫我自己的,如果我能找到一個算法的很好的描述做佈局。但我真的不想花太多時間。我現在有一些工作,所以讓它在客戶端只是一個獎金,而不是必要的。

回答

8

看看D3(數據驅動文件)

http://d3js.org/

他們有一些漂亮的圖形佈局。

+0

絕對是一個非常好的選擇。我玩了一下,我很驚訝。這可能是我最終會用到的,但我會稍等一下,看看其他人是否有建議。 – GJK

2

http://sigmajs.org/是一個專門用於圖形可視化的JS庫。它使用Canvas而不是SVG。

+0

sigma.js的問題在於,您必須自行完成佈局... – echox

+0

完全沒有,ForceAtlas2佈局可用,您可以編寫自己的佈局。我已經完成了幾個佈局。真正的問題是在Web瀏覽器上運行佈局,這比使用編譯語言慢得多。 – Seb

9

退房dagre https://github.com/cpettitt/dagre它現在使用D3並且做Graphviz的(Sugiyama)佈局。

+0

愛,我一直在尋找一個正確的佈局的Javascript庫,這是第一個接近mar k;)感謝分享! –

2

在商業場景中,yFiles for HTML庫應該值得關注。雖然它還具有自己的可視化和編輯功能,但是佈局也可以單獨使用,並且在編寫時這些佈局算法很可能是最靈活和最複雜的佈局算法,如果您在尋找純Javascript庫,那麼您會發現這些佈局算法。當然,現在有些技術可以基本上將任何庫(例如GraphViz庫)編譯爲Javascript "blobs",但它們不提供真正的API,它們更像瀏覽器中的控制檯應用程序。

在網上有很多demos可用,顯示你可以用yFiles中的佈局做什麼。該實現提供了複雜的可配置版本的強制定向算法,分層(Sugiyama風格),正交,樹形,圓形和純邊緣路由算法。 This overview顯示了不同的可用模塊,並且它們可以獨立於查看器和編輯器部件使用。

完全披露:我爲創建yFiles的公司工作,但因此我不代表我的僱主。