[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[igraph] labelling vertices using python
From: |
venura.2.mendis |
Subject: |
[igraph] labelling vertices using python |
Date: |
Tue, 15 Jul 2008 11:55:25 +0100 |
Hello everybody! This is my first message to the list
Sorry if this is quite a straightforward problem, Ive just started using
igraph and this is essentially my first python programme so I might well
be doing something very silly.
Ive created a graph and added vertices and edges ok (atleast the graph
summary and plot indicates things are ok,
g = igraph.Graph(directed=False)
g.add_vertices(len(nodeList))
count=0
id2vIndexDict = dict()
for vertice in nodeList:
id2vIndexDict[vertice[0]]=count
g.vs[count]["id"]= vertice[0]
g.vs[count]["label"]= str(vertice[1])
count= count+1
for edge in edgeList:
igraghEdge = (id2vIndexDict[edge[0]],id2vIndexDict[edge[1]])
g.add_edges(igraghEdge)
nodeList is an object that I have generated from a database 0 index is a
unique ID and index 1 is a label. I'd like to label the vertices I
create with this label. This all seems to be ok and when I plot the
graph without labels everything is fine (igraph.plot(g, "g.png",
vertex_label=None). However with labels I get the following errors,
Traceback (most recent call last):
File "D:/python/workspace/src\SQLGraph.py", line 137, in testgetiGraph
igraph.plot(dendo, "dendo.png")
File "C:\Python25\lib\site-packages\igraph\drawing.py", line 695, in
plot
if isinstance(target, basestring): result.save()
File "C:\Python25\lib\site-packages\igraph\drawing.py", line 367, in
save
if self._is_dirty: self.redraw()
File "C:\Python25\lib\site-packages\igraph\drawing.py", line 342, in
redraw
plotter(ctx, bbox, palette, *args, **kwds)
File "C:\Python25\lib\site-packages\igraph\clustering.py", line 719,
in __plot__
result = Dendrogram.__plot__(self, context, bbox, palette, *args,
**kwds)
File "C:\Python25\lib\site-packages\igraph\clustering.py", line 539,
in __plot__
for idx in xrange(self._n)]
File "C:\Python25\lib\site-packages\igraph\clustering.py", line 488,
in _item_box_size
xb, yb, w, h, xa, ya = context.text_extents(self._names[idx])
TypeError: Context.text_extents() argument must be a string or unicode
object
I tried setting the g.vs[count]["label"]= "test string" just to make
sure nothing weird with object getting dereference etc. I get the same
error. Also when I don't set the attribute label at all the plot works
ok and the vertices are labelled by index. I presume I'm not setting the
attributes correctly. Ive followed instructions at
http://lists.gnu.org/archive/html/igraph-help/2007-11/msg00009.html
which seems to make lots of sense but I guess am not doing something.
Id appreciate any help/comments
British Telecommunications plc
Registered office: 81 Newgate Street London EC1A 7AJ
Registered in England no. 1800000
This electronic message contains information from British
Telecommunications plc which may be privileged or confidential. The
information is intended to be for the use of the individual(s) or entity
named above. If you are not the intended recipient be aware that any
disclosure, copying, distribution or use of the contents of this
information is prohibited. If you have received this electronic message
in error, please notify us by telephone or email (to the numbers or
address above) immediately.
Activity and use of the British Telecommunications plc email system is
monitored to secure its effective operation and for other lawful
business purposes. Communications using this system will also be
monitored and may be recorded to secure effective operation and for
other lawful business purposes.
- [igraph] labelling vertices using python,
venura.2.mendis <=