1

I need to use python with Java in a project in which graphs (the kind with nodes and edges) plays a large role. I want to visualize those graphs in a simple GUI and update its node labels/edge weights/whatever every second or so. I also want to load graphs from files in graphml form.

Networkx is advised by many people, but doesn't seem to work with Jython, is that correct? If not, I get a

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

error from inside the Networkx egg. Even if it's works, I would need Numpy and matplotlib to work and I'm not sure those work with Jython.

So firstly, could you help me with solving these NetworkX issues. Secondly, are there alternatives to Networkx that you could recommend for my purposes?

1 Answers1

0

Jython is python language spec inside of the JVM much like JRuby.

NetworkX source code is C or fortran (don't remember which). Numpy/Scipy are C based (great packages for scientific computing). Matplotlib is c (for display of the graphs).

NetworkX will help create graphs, matplotlib will help display them but both may not work in Jython.

If you need c based resources try jpype; its older (python 2.7) but will allow some functionality between c and java using JNI (java native interface).

What I have done is create graphs in python then switch over to Gephi to visualize and display the graphs. Gephi is java based and a up and coming free tool.

Chris
  • 1