在 Graphviz 中删除一个节点

Delete a Node in Graphviz

有没有一种从图中删除节点的好方法? 我正在使用 graphviz 库创建节点,但它们没有删除节点的功能

目的: [我想显示一个节点从一个集群移动到另一个集群,但我找不到从旧集群中删除它的方法,而且我无法将它添加到新集群中,因为名称重复]

我得到了使用 pydotplus 库的建议,但是来自 graphviz 和 pydotplus 的对象不能作为子图添加到一个图中,所以如果您确认没有使用 Graphviz 的解决方案,我必须更改整个代码

我找到了一个方法,但不是很好,

每次使用 graphviz 函数时都会在图体中添加 DOT 代码,图体是一个 python 列表,如下所示:

>>> graph=gv.Digraph(format = 'gif')
>>> graph.node('a')
>>> graph.node('b')
>>> print (graph.source)
digraph {
    a
    b
} 

您可以通过以下方式访问正文列表:

>>>graph.body[0]

但输出会像这样

 '\ta'

您可以通过两种方式删除它:

>>>del graph.body[0]

如果您确实知道确切的格式,也可以使用删除

>>> graph.body.remove('\ta')

并且使用

很容易知道格式
>>>graph.body[index]

然后构建一个代码来搜索字符串匹配并将它们从图体中删除(如果您像我一样多次为同一集群创建子图)