2013-10-10 57 views
4

ADJ是在python numpy的陣列添加頂點標籤中的igraph繪製

from igraph import * 
g = Graph.Adjacency(adj.tolist()) 
plot(g) 

圖像沒有頂點,只有節點和邊的標籤。我怎樣才能讓劇情顯示標籤或頂點序列?謝謝,

回答

7

您可以指定標籤,以顯示作爲vertex_label關鍵字參數plot()列表:

plot(g, vertex_label=["A", "B", "C"]) 

如果圖表中的頂點恰好有一個頂點屬性命名爲label,IGRAPH將使用這些在默認情況下的情節,所以你也可以這樣做:

g.vs["label"] = ["A", "B", "C"] 
plot(g) 

Graph.__plot__函數的文檔瞭解更多信息。 (plot()只是一個薄包裝器,它將第一個參數傳遞給它的任何對象的方法稱爲__plot__)。

+1

謝謝!節點的序列是什麼?即,我怎麼知道標籤'A'代表節點0?另一個關鍵的問題是,我在哪裏可以找到佈局算法的源代碼? – Sean

+2

igraph圖中的節點和邊緣始終具有從零開始的數字ID,並且應該按照數字ID的升序指定標籤。如果使用'Graph.Adjacency'構造圖,索引* i *的節點總是對應於矩陣的行/列* i *。 –

+2

重新佈局:igraph在未指定特定佈局算法時使用的算法取決於圖的大小;請參閱https://github.com/igraph/igraph/blob/master/interfaces/python/igraph/__init__.py#L1328。但是,實際的佈局算法在C中實現:https://github.com/igraph/igraph/blob/master/src/layout.c –