[graph-tool] Graph drawing: overlay possible?

Steffen Schaper steffen.schaper at physics.ox.ac.uk
Tue Aug 9 10:48:17 CEST 2011


On 09/08/11 01:34, Tiago de Paula Peixoto wrote:
> Strange, I cannot reproduce this at all... For me, I get always the same
> layout.
>
> What version of graphviz do you have insalled?

I'm on version 2.26.3 (20100126.1600) - the one in the Ubuntu Natty repos.


On 09/08/11 01:48, Tiago de Paula Peixoto wrote:
> The graph_draw() function defaults to 'neato' if the graph is smaller 
> than 1000 nodes, and uses 'sfdp' otherwise. And indeed, it seems like 
> 'sfdp' ignores the pin property. This is a graphviz limitation. 
Maybe you could add another check to draw/__init__.py at line 312:

layout = "neato" if g.num_vertices() <= 1000 else "fdp" if pos is not 
None and pin else "sfdp"


> Unfortunately, graphviz gives very little control on the total canvas 
> size, and likes to crop things. I find it very annoying, but I don't 
> know how to force graphviz to do the right thing. 
At least when I set the canvas size for neato with size=(15,15), I 
always get the same size in the end.

>> One thing that suprised me is that pinning doesn't make things any
>> faster. My network has almost 10000 nodes - does it really take most
>> of the time to create output rather than performing the actual layout?
> I notice a _huge_ difference when running 'neato' with pinning
> vs. without. But maybe you can improve things further by limiting the
> total number of iterations with the 'maxiter' parameter.
Thanks, setting maxiter=1 made things faster (subjectively, I haven't 
done timings).
What I meant originally was that the difference between sfdp without pin 
and neato/fdp (I tried both now) with pin isn't as big as I thought. My 
naive expectation was that it takes most of the time to do the layout, 
so if we tell graphviz where to put the nodes, the rest should be a lot 
quicker.

Best,
Steffen




More information about the graph-tool mailing list