Large Graph Visualization

I haven't yet begun to use graph-tool, but it seems like a very good option
for analysis of large graphs. I'll be using it to analyze graphs with
50-100,000 nodes, often densely connected (adjacency matrices are about 70%
sparse).

What I would like to know is how graph-tool will work for visualizing such
graphs. I have tried a couple of stand-alone visualization programs with
poor results. I would also like to have the option to embed the graph in
three dimensions according to spatial coordinates that I specify. How will
graph-tool suite my needs? If it's not optimal, can someone suggest a
visualization tool that can be integrated with graph-tool without too much
headache? Thanks in advance.

In general the visualization of very large graphs is always very tricky,
unless it has some very strong large-scale structure. In particular
spring-block layouts will just give you blobs in that case.

I think the best chance you have of getting something useful is by
visualizing it in hierarchy form, such as this:

    https://graph-tool.skewed.de/static/doc/draw.html#graph_tool.draw.get_hierarchy_control_points

Best,
Tiago

Thanks for your reply Tiago. I do appreciate that I won't be able to see
much structure in my graph using something like a spring layout, and a
hierarchical layout would be better for exposing interesting features of the
graph structure. However I would also like to have the ability to assign
three dimensional (x,y,z) node coordinates to each node. This is because
each node in my graph corresponds to a measure position in the brain.
Surprisingly it's been hard to find graph visualization software that allows
the user to specify node positions programmatically for large graphs. Does
graph-tool allow the user to do this?

Graph-tool does not have any 3D visualization routines.

But what do you mean with specifying the node positions
'programmatically'? In graph tool you can pass any position property
map to the graph_draw() function...

Best,
Tiago

By programmatically I just mean passing coordinates to a function like
graph-draw. But does graph_draw() accept z coordinates, or only (x,y)
coordinates? I assume it is only (x,y) since you say that graph-tool does
not have 3D visualization. I suppose I could write code to project a 3d
set of nodes onto a 2d plane, and then alter node sizes to add the effect
of perspective. But I am hoping to find a program that does this natively
and quickly for large graphs.

Thanks again!

attachment.html (5.03 KB)