|
What are the best tools for large scale graph visualization for graphs with a few millions of nodes and hundreds of millions of edges? |
|
Cytoscape is quite routinely used in Bio Informatics, I am not sure if it can scale to few million of nodes though. http://www.cytoscape.org/ With enough time and RAM, Cytoscape could probably generate something of use.
(Jul 06 '10 at 14:10)
Mike Smoot
|
|
You may want to look into NetworkX for python. Although I have never used it on 1 million nodes. Network X is useful for manipulating networks/graphs, developing algorithms etc. esp it allows fast development of graph algorithms using python. It can be scaled up to few hundred thousands nodes on a 32 bit machine and even few millions nodes on 64 bit machine. Though at that scale it is better to write main algorithm in C/C++. Regarding visualization, Network X interfaces with matplotlib: http://networkx.lanl.gov/examples/drawing/index.html Its a good solution if you want to say extract/manipulate subgraphs and save them as images/Pdfs for visualization.
(Jul 04 '10 at 16:56)
DirectedGraph
|
|
For Java I'd recommend you JUNG. It's pretty stable, and it has been developing for quite some time. If you don't use java I'd recommend you graphviz.(Most of the opensource graphing and drawing applications use graphviz at the backend) I think graphviz can handle the job, but it may take some time to process that amount of data. Edit: Also note that graphiz has a utility called as sfdp which is for multiscale version of fdp for the layout of large graphs. |
|
The answer depends entirely on what you want to do with the visualization. Can you say more? At one extreme, maybe you want to draw the entire graph at once in a way that allows you to see certain global properties (namely?), but where you can't really see individual nodes or connections. This is much of the focus of InfoVis, the IEEE Symposium on Information Visualization. Here are some old Internet connectivity maps and some more pretty pictures (not limited to graphs). At the other extreme, you want a graph browser that lets you navigate around and study local details (namely?) but may not show the whole graph at once. Ben Bederson has done some work in this space and so have I, but I'm not sure whether it's what you want. The annual International Symposium on Graph Drawing is good, but last I looked, was more focused on smaller graphs (though that can be useful within a graph browser). Jason's local graph (and hypergraph) browser is called Dynasty: http://www.dyna.org/Dynasty "Dynasty is our graphical interface for browsing large (possibly infinite) directed graphs and hypergraphs. Dynasty shows only a small local subgraph around the cursor." Although this might not by what Vaclav wants, it might be what another reader of the question wants.
(Jul 05 '10 at 14:30)
Joseph Turian ♦♦
|
|
With the scale of graph you're talking about a visualization won't communicate a whole lot beyond a giant hairball. The other big problem is calculating a nice layout for something that large as most layout algorithms are fairly computationally intensive. You'd be much better off summarizing or in some other way reducing the size of your data and trying to present that instead. Cytoscape has no built in limits, so with enough RAM (>50G?), you might be able to see something. One clever idea I've seen implemented is to write PostScript code to iterate over an embedded adjacency list with pre-calculated coordinates. The PS file remained fairly small, but was still able render a giant graph quite nicely. |
|
Something new on the horizon is the VTK based Titan https://www.kitware.com/InfovisWiki/index.php/Main_Page Just fixing the malformed link http://www.kitware.com/InfovisWiki
(Jul 21 '10 at 15:40)
Brian Wylie
|
|
You might want to consider rolling your own layout, with Processing, or Python. This might be the long way around, and it may help in other ways in the long run, but it obviously is not a way that would keep you completely focused on your goal and getting a look at the data as fast as possible. |
|
I don't have any more tools to add to the very complete list above, but I've come across many effective (and not-so-effective) visualizations of large graphs (or whatever data I currently happen to be working with) by keeping up with info viz blogs. You could try scanning the archives of these for some food for thought:
|