四種圖類型
NetworkX 常用四個類別。先選對類型,再往裡面加資料。
| 類別 | 方向 | 平行邊 | 典型用途 |
|---|---|---|---|
Graph |
無向 | 否 | 朋友關係、合作網路 |
DiGraph |
有向 | 否 | 追蹤、引用、網頁連結 |
MultiGraph |
無向 | 是 | 同一對節點有多種關係 |
MultiDiGraph |
有向 | 是 | 多班次航線、多次交易 |
建立空圖
四種圖的新增節點/邊 API 幾乎相同,差在語意:無向圖的 (u, v) 與 (v, u) 是同一條邊;有向圖則是兩條。
從現有資料一次建好
不必先建空圖再慢慢加。建構函式吃邊串列、鄰接字典,或另一張圖:
把無向圖轉成有向圖時,每條邊會複製成 u→v 與 v→u。這常常不是你要的;若原始資料本身就有方向,請直接用 DiGraph。
怎麼選
- 關係有沒有方向?有 →
DiGraph(或MultiDiGraph)。 - 同一對節點會不會出現多條邊?會 → Multi 系列。
- 其餘情況用
Graph即可。
不要混用語意
Graph 不保存平行邊:你加第二次 (1, 2),只會覆蓋或忽略,不會變成兩條。若資料裡真的有多條關係,用 MultiGraph 並給每條邊一個 key。