1

I want to develop an online graph/topology editor.It should fulfill the following requirements:

  1. Add/delete/edit nodes and edges
  2. Drag and drop nodes
  3. Performance should be good for graphs with nodes > 1000
  4. should be free/ open source
  5. Input and Output should be a graphML file.

Which of the following javascript libraries are more suitable in this case. My main concern is importing and exporting graphML feature.

cytoscape.js: we can import and export graphML using cytoscape-graphml.js. But I am not sure if it provides all other features.

d3.js: I guess it only provide input and output as JSON object. Is there any way it can import and export graphML format?

sigma.js: Does it fulfill all the above mentioned requirements?

Or is there any other library which fulfill all these requirements?

Thank you!

  • Possibly related : using a graphml file for d3.js force-directed layout – Mawg Sep 24 at 15:19
  • Visualizing NetworkX graphs in the browser using D3 indicates a library with a read_graphml() method. – Mawg Sep 24 at 15:23
  • And there are not one, but two GitHub repositories with graphML - > JSON Python code, if that helps. D3JS really is so good that it is worthwhile converting that investing simple looking 68 lines of Python and using it in your app. – Mawg Sep 24 at 15:24
  • 1
    I used a python code to convert graphML to JSON and it worked perfectly. Is there any python script that can convert JSON to graphML? Is it possible? Because after editing the graph using d3js I need to save it as a graphML file. – Zeeshan Rao Sep 25 at 12:40
  • libraries.io/npm/odb2graphml looks like it will do it "converts the JSON exported by OrientDB into GraphML". I think you can ignore the "exported by OrientDB ". Failing that, if you have one way conversion, it can't be too difficult to code the reverse. Good luck & please let us know how it goes – Mawg Sep 25 at 13:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.