I am building a site where people submit pieces of data that are essentially nodes and edges, stored in a MySql database through PHP. I want to represent the data through network graphs (nodes and edges) on my web page. The graphs need to be interactive, such that the users can show and hide nodes. When a new node is shown, the graph needs to update with new nodes and edges from the database.

Is there any software or library that helps me do this?

3 Answers 3


You can use the JavaScript library D3.js (BSD license), it contains some nice function to present the data as a network:

enter image description here

enter image description here

enter image description here

More examples.


You could do well to take a look at Plotly - it offers a free web plotting interface that you can drive with python (with matplotlib), R and MATLAB with the first two being free, cross-platform and offering interactive graphs the last being cross-platform only.

One tip - first sign up, then go to the learn tab and in section of whichever tool you are going to use of the API panel select "Get Started" and you will be presented with a page that is customised to include your authentication details.

Some example graphs: enter image description here

  • Plotly looks like a great tool for data plotting, but I cannot see any network graphs in the examples, and i cannot see graph nodes or edges mentioned in plot.ly/product/how-it-works . Am I just missing it or does it not support network graphs? If it doesn't, then I apologize for not making it clear enough that I need a network graph (nodes and edges), not x/y graphs.
    – vbikscfb
    Aug 7, 2014 at 18:49

You can also use Linkurious.js, a Javascript toolkit to speed up the development of graph visualization and interaction applications. It is free for open source projects.

It allows expanding/hiding individual nodes if you code these interaction features (I've done it for a project). Graph data may be updated in real-time, but display refresh must be triggered manually.

Disclaimer: I work at Linkurious SAS.

  • Welcome to the site! It's fine that you're affiliated with the company, but your answers still need to be high quality. How does this solution fit all the points mentioned in the question? For example, does it allow expanding/hiding individual nodes? Real-time updating?
    – user46
    Mar 11, 2015 at 16:37
  • I've edited the answer
    – Seb
    Mar 17, 2015 at 10:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.