2013-04-23 63 views
1

我需要在一個項目中使用python和Java,在這個項目中圖形(帶有節點和邊的種類)扮演着重要的角色。我想在一個簡單的GUI中將這些圖表可視化,並且每秒鐘更新其節點標籤/邊緣權重。我也想從graphml形式的文件中加載圖形。Jython圖庫

Networkx被許多人建議,但似乎沒有與Jython一起工作,這是否正確?如果不是這樣,我得到一個

SyntaxError: 'import *' not allowed with 'from .'

錯誤從Networkx蛋內。即使它有效,我也需要Numpy和matplotlib才能工作,但我不確定這些工作是否適用於Jython。

所以首先,你能幫我解決這些NetworkX問題嗎?其次,對於我的目的,您可以推薦Networkx嗎?

回答

0

Jython是JVM內部的Python語言規範,很像JRuby。

NetworkX源代碼是C或fortran(不記得是哪個)。 Numpy/Scipy是基於C(科學計算的偉大軟件包)。 Matplotlib是c(用於顯示圖表)。

NetworkX將幫助創建圖形,matplotlib將幫助顯示它們,但兩者可能無法在Jython中工作。

如果您需要基於c的資源,請嘗試jpype;它的老版本(Python 2.7),但會允許使用JNI(java本地接口)在c和java之間的一些功能。

我所做的是在python中創建圖形,然後切換到Gephi以可視化和顯示圖形。 Gephi是基於Java的免費工具。