如何检查一个节点是否已经存在于Graphviz Python中

5
如何检查图中是否已经存在特定的节点。
以下是我尝试过的方法。
>>>from graphviz import Digraph
>>>dot = Digraph()
>>>dot.node('solid',xlabel='0')
>>>dot.node('liquid',xlabel='0')
>>>dot.edge('solid','liquid','melt')
>>>print (dot)

digraph {
    solid [xlabel=0]
    liquid [xlabel=0]
    solid -> liquid [label=melt]
}

>>>check = 'solid' in dot
>>>print (solid)

False

正如我们在这里看到的,我无法直接检查节点。

我正在寻找一种方法来检查以前是否访问/创建了节点,如果该节点已被访问,则将其xlabel增加1。

是否有一种遍历并访问图形化可视化工具中每个节点的方法,还是我需要编写单独的代码来检查特定节点是否存在?

2个回答

1
显然,.body属性包含以制表符为前缀的节点列表。如果您能这样做:
>>>print('\tsolid' in dot.body)

True

0

我在2020年使用的方法是:

if '\tsolid' in dot.source:
    # Here you need to get the line number and know the real xlabel
    dot.body[line_number] = '\tsolid [xlabel='+str(real_xlabel)+']'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接