我需要在一个项目中使用Python和Java,其中图(带有节点和边的那种)起着重要作用。我想在一个简单的 GUI 中可视化这些图表,并每秒更新其节点标签/边权重/任何内容。我还想从 graphml 形式的文件加载图表。
很多人都建议使用 Networkx,但似乎不适用于 Jython,这是正确的吗?如果没有,我会得到一个
语法错误:“import *”不允许与“from .”一起使用
来自 Networkx Egg 内部的错误。即使它有效,我也需要 Numpy 和 matplotlib 才能工作,而且我不确定它们是否适用于 Jython。
首先,您能帮我解决这些 NetworkX 问题吗?其次,您是否可以为我的目的推荐 Networkx 的替代方案?
最佳答案
Jython 是 JVM 内部的 Python 语言规范,很像 JRuby。
NetworkX 源代码是 C 或 fortran(不记得是哪一个)。 Numpy/Scipy 是基于 C 的(用于科学计算的优秀软件包)。 Matplotlib 是 c(用于显示图形)。
NetworkX 将帮助创建图形,matplotlib 将帮助显示它们,但两者可能都无法在 Jython 中工作。
如果您需要基于 C 的资源,请尝试 jpype;它较旧(python 2.7),但允许使用 JNI(java native 接口(interface))在 c 和 java 之间实现某些功能。
我所做的是在 python 中创建图表,然后切换到 Gephi 来可视化和显示图表。 Gephi 是基于 Java 的,是一个新兴的免费工具。
关于java - Jython 图形库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159985/