Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Đặt vị trí nhãn cạnh (edge labels) trong NetworkX với Matplotlib


Các bước

  1. Thiết lập kích thước hình và padding.
  2. Khởi tạo đồ thị có hướng.
  3. Thêm nhiều nút (nodes).
  4. Thêm cạnh bằng add_edges_from().
  5. Định vị nút bằng thuật toán Fruchterman-Reingold.
  6. Vẽ đồ thị với Matplotlib.
  7. Vẽ nhãn cạnh với draw_networkx_edge_labels() và tham số label_pos.
  8. Gọi show().

Ví dụ

import matplotlib.pylab as plt
import networkx as nx

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

G = nx.DiGraph()
G.add_nodes_from([1, 2, 3, 4])
G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 1), (1, 3)])
pos = nx.spring_layout(G)

for u, v, d in G.edges(data=True):
    d['weight'] = 3
edges, weights = zip(*nx.get_edge_attributes(G, 'weight').items())

nx.draw(G, pos, node_color='b', edge_color=weights, width=2, with_labels=True)
nx.draw_networkx_edge_labels(
    G, pos,
    {(1, 2): "x", (2, 3): "y", (3, 4): "w", (4, 1): "z", (1, 3): "v"},
    label_pos=0.75
)
plt.show()

Kết quả

Đặt vị trí nhãn cạnh (edge labels) trong NetworkX với Matplotlib