有没有办法在python中获取graphviz中的边列表。在我的程序中,我想在有向图中添加边之前检查节点之间是否已存在边缘。我在python中的grahviz中找不到像get_edge()
或has_connected()
函数这样的函数。还有其他方法可以完成上述任务吗?任何帮助将不胜感激。
答案 0 :(得分:0)
我刚遇到这个问题。我没有在源代码中看到任何表明检查边是否在图中的方便方法。
如果你正在处理一个非常简单的图表,那么这可能会有所帮助。
def has_edge(graph, v1, v2):
tail_name = graph._quote_edge(v1)
head_name = graph._quote_edge(v2)
return (graph._edge % (tail_name, head_name, '')) in graph.body
我从graphviz / dot.py中的'edge()'方法改编了这个。它不处理任何属性。
从我所看到的,graph.body
是一个表示节点和边缘的字符串列表。
答案 1 :(得分:0)
如果您的目标是避免重复边缘,请使用Digraph(strict=True)
或Graph(strict=True)