我需要在项目中使用python和Java,其中图形(具有节点和边缘的类型)起着重要作用。我想在一个简单的GUI中可视化这些图形并更新其节点标签/边缘权重/每秒钟左右。我还想以graphml格式加载文件中的图形。
很多人都建议使用Networkx,但似乎不能使用Jython,这是正确的吗?如果没有,我得到一个
SyntaxError: 'import *' not allowed with 'from .'
错误。即使它有效,我也需要Numpy和matplotlib才能工作,我不确定它们是否适用于Jython。
首先,您能帮助我解决这些NetworkX问题吗?其次,您可以为我的目的推荐Networkx的替代品吗?
答案 0 :(得分: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的,是一种即将推出的免费工具。