Skip to content

建立 2026-09-14 更新 2026-09-14

讀寫檔案

圖通常不是在程式裡手打出來的。NetworkX 能讀寫多種格式;跟 pandas 互轉則適合從 CSV/資料庫來的邊表。

邊列表(最簡單)

純文字,每行一條邊,可選第三欄當權重:

1 2 0.5
2 3 1.2
import networkx as nx

G = nx.read_weighted_edgelist("edges.txt", nodetype=int)
nx.write_weighted_edgelist(G, "edges_out.txt")

沒有權重時用 read_edgelist / write_edgelistnodetype= 決定節點要轉成 int 還是保留字串。

GraphML 與 GEXF

這兩種是帶屬性的 XML 格式,Gephi、Cytoscape 都吃得下:

nx.write_graphml(G, "network.graphml")
H = nx.read_graphml("network.graphml")

nx.write_gexf(G, "network.gexf")

圖變複雜、又要給視覺化軟體時,優先 GraphML 或 GEXF,不要只用 edgelist。

從 pandas 建圖

邊表幾乎都是兩欄(或加上權重欄):

import pandas as pd

df = pd.DataFrame({
    "source": ["A", "B", "C"],
    "target": ["B", "C", "A"],
    "weight": [1.0, 2.5, 0.8],
})
G = nx.from_pandas_edgelist(df, source="source", target="target", edge_attr="weight")

反向:nx.to_pandas_edgelist(G) 得到邊表。鄰接矩陣則用 nx.to_numpy_array(G) / nx.from_numpy_array(A)

官方畫廊

更多格式(GML、JSON、sparse matrix)見 官方 Reading and writing graphs