2017-04-11 197 views
1

有没有一种很好的方法可以从图形中删除一个节点? 我使用的graphviz库创建节点,但他们没有一个功能删除一个节点删除Graphviz中的节点

目的: [我要表明一个节点从集群到另一个感动,但我无法找到一种从旧的群集删除它,我不能把它添加到,因为重名的新]

我有一个建议使用pydotplus库而是从graphviz的对象,不能在一个被添加pydotplus图表作为子图,所以如果您确认没有使用Graphviz的解决方案,我必须更改整个代码

+0

另一种可能的方法是使用PyGraphviz, te_node功能 – ramin

回答

1

我找到了一种方法,但它不是那么好,

每次使用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] 

然后建立一个代码搜索字符串匹配和删除它们的格式图表体(如果您已经为同一个群集创建了超过一次的子图)如下