Python 如何从字典中生成加权图?
我想从字典里画一个加权图。我认为我获取数据的方式使它变得困难。 我的数据如下:Python 如何从字典中生成加权图?,python,graph,networkx,Python,Graph,Networkx,我想从字典里画一个加权图。我认为我获取数据的方式使它变得困难。 我的数据如下: graph = {} graph["A"] = {} graph["A"] ["B"] = 1 graph["A"] ["C"] = 3 graph["A"] ["D"] = 2 graph["B"] = {} graph["B"
graph = {}
graph["A"] = {}
graph["A"] ["B"] = 1
graph["A"] ["C"] = 3
graph["A"] ["D"] = 2
graph["B"] = {}
graph["B"] ["D"] = 7
graph["B"] ["F"] = 5
graph["C"] = {}
graph["C"] ["E"] = 5
graph["D"] = {}
graph["D"] ["B"] = 7
graph["D"] ["E"] = 1
graph["E"] = {}
graph["E"] ["F"] = 4
graph["F"] = {}
父节点是一个字典,它存储具有边权重的邻居
我可以使用networkx制作未加权的图形:
for k, v in graph.items():
G.add_edges_from(([(k,t) for t in v]))
但是我想不出一种方法来增加边缘的重量。不幸的是,我无法编辑我获取数据的方式,而这是我唯一能想到的让它发挥作用的选项。请帮助假设G是您的图形:
graph = {}
graph["A"] = {}
graph["A"] ["B"] = 1
graph["A"] ["C"] = 3
graph["A"] ["D"] = 2
graph["B"] = {}
graph["B"] ["D"] = 7
graph["B"] ["F"] = 5
graph["C"] = {}
graph["C"] ["E"] = 5
graph["D"] = {}
graph["D"] ["B"] = 7
graph["D"] ["E"] = 1
graph["E"] = {}
graph["E"] ["F"] = 4
graph["F"] = {}
for k,v in graph.items():
for l, w in v.items():
print(k, l, w)
G.add_edge(k,l, weight=w)
假设G是您的图形:
graph = {}
graph["A"] = {}
graph["A"] ["B"] = 1
graph["A"] ["C"] = 3
graph["A"] ["D"] = 2
graph["B"] = {}
graph["B"] ["D"] = 7
graph["B"] ["F"] = 5
graph["C"] = {}
graph["C"] ["E"] = 5
graph["D"] = {}
graph["D"] ["B"] = 7
graph["D"] ["E"] = 1
graph["E"] = {}
graph["E"] ["F"] = 4
graph["F"] = {}
for k,v in graph.items():
for l, w in v.items():
print(k, l, w)
G.add_edge(k,l, weight=w)
使用示例
图形
。将图形
中的键与其值中的每个项组合起来。用于添加边
import networkx as nx
G = nx.Graph()
for k, v in graph.items():
edges = [(k,b,w) for b,w in v.items()]
print(edges)
#G.add_weighted_edges_from(edges)
G.add_weighted_edges_from((k,b,w) for b,w in v.items())
使用示例
图形
。将图形
中的键与其值中的每个项组合起来。用于添加边
import networkx as nx
G = nx.Graph()
for k, v in graph.items():
edges = [(k,b,w) for b,w in v.items()]
print(edges)
#G.add_weighted_edges_from(edges)
G.add_weighted_edges_from((k,b,w) for b,w in v.items())
我想不出向边缘添加权重的方法。
您不知道如何为networkx边缘添加权重?或者您不知道如何从图表中获取权重?我想不出一种方法将权重添加到边缘。
-您不知道如何为networkx边缘加权?或者您不知道如何从图表中获取权重?