[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [igraph] Extracting vertex coordinates after plot command, and using

From: Tamás Nepusz
Subject: Re: [igraph] Extracting vertex coordinates after plot command, and using weights in fruchterman_reingold
Date: Tue, 15 Mar 2011 14:53:32 +0100

Hi Greg,

I presume you are using Python as you've mentioned it in your email.

> Just wandering if there is a way to extract the coordinates of vertices after 
> the plot command?
If I need the coordinates after the plot() command, I usually do it the other 
way round: calculate a layout by calling Graph.layout() with the appropriate 
parameters and then pass the generated layout to plot(). E.g.:

layout = graph.layout("fruchterman_reingold")
plot(graph, layout=layout)

You can then export the layout to a file if you wish; e.g.:

f = open("layout.txt")
for row in layout:
    print >>f, "%f %f" % (row[0], row[1])

> Also, I'm using igraph with python and haven't found a successful way to get 
> the 'weights' working with the fruchterman_reingold layout - eg increasing 
> force/attraction using edge weights -  a python example/link of this would be 
> most appreciated.
The easiest way is probably to use an edge attribute directly. E.g., assuming 
that your weights are stored in the "weight" attribute, you can simply do this:

layout = graph.layout("fruchterman_reingold", weights="weight")

You can also pass a list of weights to the weights keyword argument; for 
instance, let us take a ring of 10 vertices and set the weight of one of the 
edges to 100:

ring = Graph.Ring(10)
layout = ring.layout("fruchterman_reingold", weights=[100] + [1]*9)

You will see that one of the edges on the layout became significantly shorter 
than the others.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]