如何使用权重初始化igraph?
这就是我所拥有的
cr = csv.reader(open("atlas.csv","rb"))
mapping = {}
for row in cr:
if int(row[2]) == 1:
continue
source = int(row[0])
target = int(row[1])
if source in mapping:
list = mapping[source]
list.append(target)
else:
mapping[source] = [target]
print mapping
G = Graph(edges = [(v, a) for v in mapping.keys() for a in mapping[v]])
print G
我尝试使用edges = (v, a, w)
添加重量,但这不起作用。
答案 0 :(得分:2)
根据文档,您可以使用TupleList
方法:
如果您有加权图表,则可以 使用第三项包含边缘权重的项目 将
edge_attrs
设置为"weight"
或["weight"]
。
您也可以将weights
参数设置为True
:
weights
- 指定图表加权的替代方法。如果 你将权重设置为true并且没有给出edge_attrs
,它将是 假设edge_attrs
为["weight"]
而igraph
将解析第三个 元素从每个项目变成边缘权重。如果您将weights
设置为a 字符串,将假设edge_attrs
仅包含该字符串, 并且igraph
会将边权重存储在该属性中。