My understanding: Gephi doesn't do well with real-time updates; it's usually used on static data.
One major consideration - what is the visualization you wish to present? Is it a directed graph? Cyclic? Weighted? Additional labels?
Some toolkits are 'fixed' in what they can display, but make it easy to present a graph. Others (like d3) are very extensible, so you could create just about anything.
For the purposes of the StackOverflow format, you might get better answers if you can pin down the limitations and needs of your system (actual data rate, thin/thick client, type of viz, etc)
I think D3 is great, however, recently, there was a talk on Sigma.js at FOSDEM, explaing that is scales better for bigger graphs. See also http://thewhyaxis.info/hairball/
check out vivagraph which uses webgl for the rendering and scales really well also for larger networks. They have some nice examples for really large ones (FB, Amazon).
There's not a silver bullet solution for this kind of problem and most depends from what you have in mind to do, the team and the budget (of money and time) you have.
I wouldn't recommend you D3, unless you have to met one of the following:
- you want to create a brand new way to visualize your data
- you have skilled people in your team - that can be you - with D3
- you have already other D3 widgets/viz to integrate
If you don't met any of the entries above I would put D3 on a side, and tell you to have a look at:
- VivaGraphJS, Open Source and free JS library.
Disclaimer: I'm one of the KeyLines developers.
Depending on the size of the data you have, the choice of the library can change: if you plan to have no more than 3/400 nodes on your chart and not need particular styling/animations then SigmaJS I think is more than fine; if you're looking for something more advanced for styling or animation I would recommend KeyLines, because it is designed to handle this kind of situations (providing an incremental layout) and it does scale up to 2000 nodes with no problems - although I might suggest to have a filter on a side with this size.
I would name VivaGraph as last resort: SigmaJS has a WebGL renderer as well and provide a much nicer rendering IMHO.
VivaGraphJS will be soon replaced with ngraph that will use an agnostic aproach for renders: you can use PIXI, Fabric or whatever you want....
Using a WebGL renderer makes sense when you load your assets once and reuse them all the time: if you're styling your chart elements in a real-time scenario there's not advantage on Canvas IMHO.
- Is D3.js the right choice for real-time visualization of Neo4j Graph DB data
- What's the best force-directed network graph engine for large data sets?
- Create a padding for the first and last data points using a time scale
- Time in x-axis and data for the y-axis for line chart in d3.js doesn't match/show with what (data) is on JSON
- Real time exit().remove() leave the node on data object exit
- How do I structure the Data array for the following d3 chart, in order to populate with real data
- Use the right color scale for data skewed to right
- How to Feed Real time data for Live chart in d3
- d3 real time graph ploting using mysql and streaming sensor data
- Real time data graphing on a line chart with the help of rickshaw and d3.js
- Real time line graph with nvd3.js
- HTML5 canvas alternatives for d3.js, graph visualization library
- Can d3.js draw two scatterplots on the same graph using data from the same source?
- Loading local data for visualization using D3.js
- Memory gradually increased using d3 for real time chart?
- Direct data input from Django for a D3 graph
- D3: How to dynamically refresh a graph by changing the data file source?
- How do I get D3 Data Driven Document to display a moment.js datetime in the correct time zone?
- d3.js on-demand data loading to get the next node for a tree
- d3 time scale - last bar on graph is appearing outside of the graph
- Visualization data inserted in the webpage is not properly indented and not appearing at desired position
- Crossfiltering of JSON data by the most recent time
- D3 - accessing nested data for the purpose of creating a navigation tree
- How to increase time to read d3.json data for large data set and slow networks?
- Specifying the json file for some visualization via a dropdown box
- Can the 'enter' selection for a line graph be animated?
- Accessing nested data for graph creation
- How to make the .data() call for this data format?
- How to Increase the width of C3 pie chart Legend only. Not for the whole graph
More Query from same tag
- Update chord diagram data from JSON in d3.js
- d3js pies, filtering out smaller arcs, labels mixed
- How to redraw my d3.js chart with data from html form?
- How to reuse custom events
- D3 4.0 rangeRoundBands equivalent?
- d3js Chart Animations not functioning
- polynomial d3-regression loading dataset
- How do I append text to my rect in d3?
- d3.js loading csv files with ISO-8859-1 encoding
- D3 force directed graph with images on canvas
- How to move shape background image with the shape in d3
- Error: <path> attribute d: Expected arc flag ('0' or '1')
- sgVizler - Remove Base URL
- D3 chart is duplicating on React.js component
- nvd3 scatter chart circle size not working
- Responsive sizing of my chart in dimple.js is not working
- Error encountered when building composite chart dc.js
- D3.js V5 tree in svg layout
- nvd3 legends overlap
- contain text into svg shape d3.js
- D3: How to implement horizontally responsive SVG elements?
- Finding the x and y co-ordinates on circle in d3 pie chart
- Get Angular to action ng-if in new elements generated by d3.js
- c3.js spline time series chart going backwards
- Ragged list or data frame to JSON
- how to integrate d3 with require.js
- D3: Nest and excluding certain keys
- Draw a frequency plot in d3 with JSON data