2010-02-15 115 views
18

我要尋找一個Java或Python庫,可以在點語言作爲圖像文件渲染圖形渲染有向圖(類似於graphviz的)。問題是我需要一個可以在Google App Engine上使用的庫。基本上我正在尋找一個庫,可以將有向圖的文本描述轉換爲圖的圖像。圖書館在谷歌應用程序引擎

例如:

隱蔽這個新銳榜:

[A,B] 
[B,C] 
[A,C] 
[C,D] 

此圖像:

example image

我用Graphviz在這個例子中,但我知道這是不可能的我可以將其與Google App Engine配合使用。

回答

17

Canviz是你在找什麼:它是一個JavaScript庫繪製的Graphviz圖形到Web瀏覽器的畫布。它適用於most browsers

使用Canviz具有優勢超過生成Web應用程序和發送位圖圖像和圖像映射到瀏覽器:

  • 服務器只需要具有的Graphviz產生XDOT文本;這比生成位圖圖像更快。
  • 只有xdot文本需要傳輸到瀏覽器;這比二進制圖像數據小,並且,如果瀏覽器支持它(大多數情況下),則文本可以是gzip或bzip2壓縮的。
  • Web瀏覽器執行繪圖,而不是服務器;這減少了服務器負載。
  • 用戶可以調整圖形的大小,而無需涉及服務器;這比服務器繪製併發送不同大小的圖形要快。

要看到它的行動,look here

+3

太棒了!我剛剛在GAE上工作。謝謝! – rsideb

0

我不認爲有這樣的純python庫,你可以做的最好的是使用NetworkX,它可以使用matplotlib或pygraphviz來繪製。也許你可以修改networkx的matplotlib代碼在服務器端繪製,here是代碼

另一個問題是谷歌應用程序引擎沒有任何繪圖API,但你可能簡單地使用SVG生成這樣的圖形或可能是谷歌圖表API已經有了一些東西。

0

你可以看看基於perfuse project閃光燈,如果只需要顯示一個圖形,而不是有它作爲嵌入的圖像是可以接受的。

他們有圖書館的一些示例應用程序,如本Dependency Graph