2024-04-18 15:46:05 发布
网友
我正在尝试创建一个基于路径列表的边上带有权重的图。你知道吗
示例数据为:
paths = [['home', 'bus stop', 'work'], ['home', 'shop', 'work'], ['home', 'shop', 'bus stop', 'work'], ['home', 'work'], ['home', 'bus stop']]
我需要得到一个加权图或流程图如下:
问题是节点和路径的数量相当大,因此手动绘制确实不太令人愉快。你知道吗
对于这个案例,我提出了一个简单的解决方案。你知道吗
from graphviz import Graph paths = [['home', 'bus stop', 'work'], ['home', 'shop', 'work'], ['home', 'shop', 'bus stop', 'work'], ['home', 'work'], ['home', 'bus stop']] path_count = len(paths) all_nodes = set() path_weights = {} for path in paths: path.append(path[-1] + '_end') all_nodes = all_nodes | set(path) for i in range(len(path) - 1): if len(path) > 1: if path[i] + '->' + path[i+1] in path_weights: path_weights[path[i] + '->' + path[i+1]] += 1 else: path_weights[path[i] + '->' + path[i+1]] = 1 g = Graph('G', filename='process.gv') for key, value in path_weights.items(): splitted = key.split('->') g.edge(splitted[0], splitted[1], label = str(round((value/path_count*100), 2)) + '%') g.view()
它画了一个非常简单的图no rating so just a link
谢谢大家。你知道吗
对于这个案例,我提出了一个简单的解决方案。你知道吗
它画了一个非常简单的图no rating so just a link
谢谢大家。你知道吗
相关问题 更多 >
编程相关推荐