I have to create a social network with a lot of data. I use visJs and the network is very slow.
I tried these plugins: Cytoscape, visJs, Vivagraph and sigma.
Problem for Visjs, cytoscape and sigma
- They are very slow
Problem with vivaGraph
- I can't render a webglGraph with a svgGraph so I can't have a lot of node and edge and put an arrow on the edge.
Advantage of vivaGraph:
He is really fast because I can render the graph with webGl. But I can't or I don't know how to add graphic with this plugin.
With visjs:
- I can initialize the graph quickly because I am able to keep the positions in the database and I can deactivate physics.
The problem is that I cannot make any changes because, when a point is added dynamically, all the other points must be recalculated and it is too long with visJs.
I have and I want something like that (It's done with visJs):
I want be able to do that:
Modify node and edge color, size, name etc.
update and generate the graph quickly with minimum 10 000 nodes.
Layout similar to the one I showed (If possible group them by color)
So I have two questions:
Is there a way to dynamically add quickly with visjs after initialization?
how I could generate my graph quickly knowing that I have at least 10,000 nodes?
Is there a technique used to generate the graph quickly with a good layout?
I found a solution to a simile problem with a sublibrary of VivagraphJS.
My problem was to build a very big graph (All (or partial) transaction bitcoin).
I decided to used ngrah.* module, these modules is very optimized for the velocity.
Well, the introduction to ngraph.* modules, is inside the readme, but these modules give the possibility to make the personal rendering in your graph.
The modules are:
There is a lot of submodules, take your time to see all.
For the big graph, you can use the pre-computation layout offline, there are two modules that you can use:
.binextension.And you can paint the graph with a different submodule, like ngraph.pixel
Conclusion
I think it is a very good open-source solution to paint a graph and a big graph, In the follow I will post my configuration with my submodule and to end I will post the link to my project and a youtube video.
Configuration
You can found a video on youtube
The source of my project is available here, maybe it can help you.
I hope my answer helping you.