2017-04-11 134 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] 

然後建立一個代碼搜索字符串匹配和刪除它們的格式圖表體(如果您已經爲同一個羣集創建了超過一次的子圖)如下