簡體   English   中英

如何從 NetworkX 中的節點列表構建圖形路徑

[英]How to build graph paths from list of nodes in NetworkX

我想做的是在 NetworkX 中構建一個圖,其中每個節點都是一個火車站。 要構建我所做的節點:

G = nx.Graph()
G.add_nodes_from(trains['Stopping place'].unique())

哪個(至少看起來像)它正在工作。
現在,因為對於每一行,我都有順序停靠,所以我建立了這樣的路徑:

stops_by_line = ((belgium_trains.sort_values(['Train number','Actual arrival datetime']).groupby('Train number'))['Stopping place'].apply(list).to_dict())
paths = ([tuple(val) for val in stops_by_line.values()])

變量如下所示:

[('HERGENRATH',
'CHENEE',
'ANGLEUR',
'LIEGE-GUILLEMINS',
'ANS',
'LEUVEN',
'HERENT',
'VELTEM',
'ERPS-KWERPS',
'KORTENBERG',
'NOSSEGEM',
'ZAVENTEM',
'DIEGEM',
'HAREN-ZUID',
'SCHAARBEEK',
'BRUSSEL-NOORD',
'BRUSSEL-CONGRES',
'BRUSSEL-CENTRAAL',
'BRUSSEL-KAPELLEKERK',
'BRUSSEL-ZUID'),
(...other ordered tuples of stops),...)]

現在我的問題是,由於所有這些元素也是節點名稱,我如何按順序使用這些元組構建邊(例如,在 BRUSSEL-NOORD 和 BRUSSEL-CONGRES 之間添加一條邊,然后從 BRUSSEL-CONGRES 到 BRUSSEL-CENTRAAL 和很快)?

您可以簡單地在循環中使用add_path方法:

for path in paths:
    nx.add_path(G, path)

Sidemark,如果你添加一條邊(如上面的例子),那么networkx也會直接將相應的節點添加到圖中。 所以可能(如果所有站點都被某些火車覆蓋)您之前不需要手動添加節點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM